Distributed system architecture for continuous glucose monitoring

ABSTRACT

The present disclosure relates to techniques for receiving glucose data from a continuous glucose sensor and controlling the use and redistribution of that data so it is used in an intended manner. In one aspect, a method includes obtaining one or more data points relating to glucose levels from a transmitter associated with a continuous glucose monitor device; distributing the one or more data points among one or more display devices and one or more servers; identifying a missing data point from among a display device of the one or more display devices or a server of the one or more servers, the missing data point being one of the one or more data points; and providing the missing data point to the display device or the server when the missing data point falls within a defined time period.

INCORPORATION BY REFERENCE TO RELATED APPLICATIONS

Any and all priority claims identified in the Application Data Sheet, orany correction thereto, are hereby incorporated by reference under 37CFR 1.57. This application is a continuation of U.S. application Ser.No. 15/152,363, filed May 11, 2016, which claims the benefit of U.S.Provisional Application No. 62/160,475, filed on May 12, 2015, and U.S.Provisional Application No. 62/249,043, filed on Oct. 30, 2015. Each ofthe aforementioned applications is incorporated by reference herein inits entirety, and each is hereby expressly made a part of thisspecification.

TECHNICAL FIELD

The present disclosure relates to a continuous glucose monitor forwirelessly transmitting data relating to glucose values, and controllingthe display and distribution of that data.

BACKGROUND

Continuous glucose monitors have been increasing in popularity as aneasy way to monitor glucose levels. Prior to the use of continuousglucose monitors, users may have found it necessary to sample theirblood glucose levels several times throughout a day, such as in themorning, around lunch, and in the evening using, for example, a teststrip that determines glucose levels from a small blood sample.Continuous glucose monitors replace these test strips and provideelectronic monitoring and display of glucose levels.

In addition to monitoring glucose levels, continuous glucose monitorscan generate and track a variety of other data relating to glucoselevels. For example, a continuous glucose monitoring system can tracknumerous data points including patient-identifying information,timestamps, alerts established by a user, diagnostic information for anelectronic unit associated with the continuous glucose monitor, and avariety of other information. The continuous glucose monitor cantransmit this information to display devices so that a user can viewglucose levels.

Initially, continuous glucose monitors wirelessly transmitted datarelating to glucose levels to a dedicated display. The dedicated displayis a medical device designed to display glucose levels, trendingpatterns, and other information for a user. However, with the increasingpopularity of smartphones and software applications (apps) executing onsmartphones, some users prefer to avoid having to carry a dedicateddisplay. Instead, some users prefer to monitor their glucose levelsusing a dedicated software app executing on their mobile computing orsmart device, such as a smartphone, tablet or wearable device like asmartwatch or smartglasses. By using software apps on such smartdevices, the continuous glucose monitoring system can transmit theglucose and continuous glucose monitor information to other devices,software applications, and servers. These other devices, softwareapplications, and servers can provide enhanced glucose monitoring, allowadditional users to track glucose levels for a person (e.g., a parentmonitoring a child's glucose levels), provide technical support relatingto system operation, and can provide a number of other systems andapplications access to the patient's medical data.

SUMMARY

Described in this disclosure are systems and methods for controlling thedistribution and use of data having multiple categories of sensitivity(e.g., restricted, less-restricted, etc.) throughout a distributedarchitecture. Exemplary embodiments allow data to be sent from acontinuous glucose monitor to one or more connected display devices andforwarded on to a cloud computing architecture. As noted herein, anumber of challenges can arise with the distribution of data that hasvarying degrees of sensitivity such as medical data, including but notlimited to limiting third-parties and certain system components fromaccessing restricted data such as proprietary, confidential orpatient-identifying information while being selectively allowed toaccess other less-sensitive data, ensuring that unauthorized entitiescannot access restricted data, and providing a system that can scale toreceive, store, and selectively grant access to large amounts of data.

In some aspects, a method of updating data in a distributed architectureincludes obtaining one or more data points relating to glucose levelsfrom a transmitter associated with a continuous glucose monitor device;distributing the one or more data points among one or more displaydevices and one or more servers; identifying a missing data point fromamong a display device of the one or more display devices or a server ofthe one or more servers, the missing data point being one of the one ormore data points; and providing the missing data point to the displaydevice or the server when the missing data point falls within a definedtime period.

Implementations of the method can include one or more of the followingexample features. In some implementations, the missing data pointincludes backfilled data sent to the display device or server after thedistributing. In some implementations, the method further includesidentifying one or more missing data points from among a display deviceof the one or more display devices or a server of the one or moreservers; and providing the one or more missing data points to thedisplay device or the server. In some implementations, the methodfurther includes displaying the one or more data points and the one ormore missing data points; and displaying an indication that the one ormore missing data points includes backfilled data. In someimplementations, the method further includes identifying one or moremissing data points from among a display device of the one or moredisplay devices or a server of the one or more servers; determiningwhich of the one or more missing data points were created within asubset of the defined time interval; and providing those missing datapoints that were created within the subset of the defined time interval.In some implementations, the method further includes displaying the oneor more data points and the one or more missing data points; anddisplaying an indication that the one or more missing data pointsincludes backfilled data. In some implementations, the display device orthe server that receives the missing data point was turned off ordisconnected when the missing data point was initially available. Insome implementations, the method includes identifying one or moremissing data points from among a display device of the one or moredisplay devices or a server of the one or more servers; determining anumber of the missing data points to backfill based on the device thatmissed the data; and providing the determined number of missing datapoints to the display device or the server. In some implementations, themethod further includes storing, by the one or more display devices orthe one or more servers that was provided the missing data point, anindication that the missing data point includes backfilled data. In someimplementations, the method further includes storing, by the one or moredisplay devices and the one or more servers, an indication that the oneor more data points were received in real-time. In some implementations,the method further includes connecting a plurality of display devices tothe transmitter; distributing the one or more data points to theplurality of display devices; and forwarding the one or more data pointsfrom the plurality of display devices to the one or more servers alongwith an indication of which display device forwarded the data. In someimplementations, the method further includes receiving the one or moredata points during the distributing of the plurality of sets of data;and displaying the one or more data points received during thedistributing differently from the missing data point. In someimplementations, the defined time period includes the past six hours.

In some aspects, a system for updating data in a distributedarchitecture includes a continuous glucose monitor device including atransmitter configured to obtain a plurality of sets of data relating toglucose levels and distribute the plurality of sets of data among one ormore display devices and one or more servers; and one or both of (i) theone or more display devices and (ii) the one or more servers, in whichthe one or more display devices and/or the one or more servers areconfigured to identify a missing set of data from among the plurality ofsets of data, request the missing set of data, and receive the missingset of data when the missing set of data falls within a defined timeperiod.

Implementations of the system can include one or more of the followingexample features. In some implementations, the missing set of dataincludes backfilled data sent to the one or more display devices orservers after the distributing. In some implementations, the one or moredisplay devices and/or the one or more servers are configured toidentify a plurality of missing sets of data from among a display deviceor a server, request the plurality of missing sets of data, and receivethe plurality of missing sets of data. In some implementations, the oneor more display devices and/or the one or more servers are configured toidentify a plurality of missing sets of data, determine which of theplurality of missing sets of data were created within a subset of thedefined time interval, and request those missing sets of data that werecreated within the subset of the defined time interval. In someimplementations, the one or more display devices are configured todisplay the plurality of sets of data and the missing set of data, anddisplay an indication that the missing set of data includes backfilleddata. In some implementations, the one or more display devices and/orthe one or more servers that receives the missing set of data was turnedoff or disconnected when the missing set of data was initiallyavailable. In some implementations, a plurality of missing sets of datafrom among a display device of the one or more display devices and/or aserver of the one or more servers are identified; a number of themissing sets of data to backfill based on the device that missed thedata are determined; and the determined number of missing sets of dataare provided to the display device or the server. In someimplementations, the one or more display device and/or the one or moreservers that was provided the missing set of data are configured tostore an indication that the missing set of data includes backfilleddata. In some implementations, the one or more display devices and/orthe one or more servers store an indication that the plurality of setsof data were received in real-time. In some implementations, the systemfurther includes a plurality of display devices in communication withthe transmitter, in which the plurality of sets of data are distributedto the plurality of display devices; and the plurality of sets of dataare forwarded from the plurality of display devices to the one or moreservers along with an indication of which display device forwarded thesets data. In some implementations, the plurality of sets of data arereceived during the distributing of the plurality of sets of data; andthe plurality of sets of data received during the distributing aredisplayed differently from the missing set of data. In someimplementations, the defined time period includes the past six hours. Insome implementations, the one or more display devices include a firstdisplay device and a second display device, and the one or more serversare configured to receive the plurality of sets of data from the one ormore display devices and separately store the plurality of sets of databased on whether the plurality of sets of data were received from thefirst display device or the second display device. In someimplementations, the first display device is configured to tag theplurality of sets of data as having been received by the first displaydevice; and the second display device is configured to tag the pluralityof sets of data as having been received by the second display device. Insome implementations, the first display device is configured to providea first alert for when glucose levels reach a first defined level orexperience a first rate of change; and the second display device isconfigured to provide a second alert for when glucose levels reach asecond defined level or experience a second rate of change. In someimplementations, the first display device is configured to provide theplurality of sets of data to the one or more servers at a first definedtime; and the second display device is configured to provide theplurality of sets of data to the one or more servers at a second definedtime. In some implementations, the one or more servers include adistributed cloud computing system including a plurality of connectedcomputing devices. In some implementations, the distributed cloudcomputing system is configured to receive data relating to glucoselevels from the one or more display devices, wherein the data routed toa particular server of the plurality of servers is determined by a datatype including real-time data and bulk data. In some implementations,the plurality of servers are configured to receive the data from the atleast one display device on an intermittent basis that varies dependingupon the data type. In some implementations, the plurality of servers ofthe cloud server architecture include at least a real-time server and abulk data collector, the real-time server configured to receive thereal-time data, and the bulk data collector configured to receive thebulk data.

Other systems, methods, features and/or advantages will become apparentto one with skill in the art upon examination of the following drawingsand detailed description. It is intended that all such additionalsystems, methods, features and/or advantages be included within thisdescription and be protected by the accompanying claims.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and constitute apart of this specification, illustrate embodiments and together with thedescription, serve to explain the principles of the methods and systems:

FIG. 1 illustrates an exemplary system for monitoring glucose levels andcontrolling access to and use of medical data.

FIG. 2 illustrates an exemplary method for providing data streams to acloud computing architecture.

FIG. 3 illustrates an exemplary embodiment of a system in accordancewith a cloud computing architecture of the present technology.

FIG. 4 illustrates an exemplary method for storing data in separategroups.

FIG. 5 illustrates an exemplary system for encrypting medical data.

FIG. 6 illustrates an exemplary method for encrypting medical data.

FIG. 7 illustrates an exemplary method for providing a common interfacethrough which data can be accessed.

FIG. 8 illustrates an exemplary system diagram of handling requests froma display to the cloud computing architecture.

FIG. 9A illustrates an example of continuous glucose monitor applicationexecuting on a display.

FIG. 9B illustrates an exemplary embodiment of a system in accordancewith cloud-server architecture for performing aspects of the describedtechnology.

FIG. 9C illustrates data and control flows associated with an exemplarylocator service.

FIG. 9D is a flowchart illustrating a method for securely collecting,analyzing and reporting data related to glucose monitoring levels by aplurality of continuous glucose monitors.

FIG. 10 illustrates an exemplary method for backfilling missed data.

FIG. 11 illustrates an exemplary method for backfilling missed data.

FIGS. 12A and 12B illustrate various views dependent upon theorientation of the display.

FIG. 13 illustrates an exemplary computer for use with the disclosedembodiments.

DETAILED DESCRIPTION

The present disclosure relates to techniques for receiving glucose datafrom a continuous glucose sensor and controlling the use andredistribution of that data so it is used in an intended manner.

As used in the specification and the appended claims, the singular forms“a,” “an” and “the” include plural referents unless the context clearlydictates otherwise. Ranges may be expressed herein as from “about” oneparticular value, and/or to “about” another particular value. When sucha range is expressed, another embodiment includes

from the one particular value and/or to the other particular value.Similarly, when values are expressed as approximations, by use of theantecedent “about,” it will be understood that the particular valueforms another embodiment. It will be further understood that theendpoints of each of the ranges are significant both in relation to theother endpoint, and independently of the other endpoint.

“Optional” or “optionally” means that the subsequently described eventor circumstance may or may not occur, and that the description includesinstances where said event or circumstance occurs and instances where itdoes not.

Throughout the description and claims of this specification, the word“comprise” and variations of the word, such as “comprising” and“comprises,” means “including but not limited to,” and is not intendedto exclude, for example, other additives, components, integers or steps.“Exemplary” means “an example of” and is not intended to convey anindication of a preferred or ideal embodiment. “Such as” is not used ina restrictive sense, but for explanatory purposes.

Disclosed are components and features that can be used to perform thedisclosed methods and systems. These and other components are disclosedherein, and it is understood that when combinations, subsets,interactions, groups, etc. of these components are disclosed that whilespecific reference of each various individual and collectivecombinations and permutation of these may not be explicitly disclosed,each is specifically contemplated and described herein, for all methodsand systems. This applies to all aspects of this application including,but not limited to, steps in disclosed methods. Thus, if there are avariety of additional steps that can be performed it is understood thateach of these additional steps can be performed with any specificembodiment or combination of embodiments of the disclosed methods.

Distributing glucose information, related health information, andcontinuous glucose monitor device information throughout a system and toother systems and applications creates challenges associated withprotecting patient confidentiality. The glucose information, diagnosticinformation, and other confidential or proprietary information are notappropriate for reproduction to all additional systems and applications.Because additional systems and applications should not have access toall of the data, it would be beneficial to separate and categorize data,and to protect the redistribution of some or all of the data in a mannerthat ensures patient confidentiality.

In one illustrative example, a continuous glucose monitor can transmit aglucose level, a timestamp indicating when the monitor obtained theglucose level measurement, and patient identifying information to adisplay. The display forwards this information to a server repository,which also stores information from a number of other patients. Someapplications can request access to this information and receive theglucose level, timestamp, and patient identifying information. As anexample, a patient may want their doctor's office to access thisinformation. However, the patient identifying information is unnecessaryto provide technical support for a user experiencing problems with theircontinuous glucose monitor. The patient identifying information, in thatexample, should therefore be excluded and technical support restrictedfrom learning the identity of a patient.

Another issue that arises with regard to storing data associated with acontinuous glucose monitor at a server includes how to organize andstore the data. Such data can include, for example, data related topatients' glucose levels, raw or calibrated data from continuous glucosemonitors, alert data including alert levels, fault detection data, andthe like. Tens of thousands of patients can use continuous glucosemonitors that forward large volumes of data to a server on a regularbasis. The process of receiving, storing, and providing selective accessto third-parties, authorized users, and additional system componentscreates large processing loads on the server. In one illustrativeexample, a continuous glucose monitor obtains a glucose level readingand an associated timestamp every five minutes. A display forwards theglucose levels and timestamps to a server for storage along withadditional data that will be described below. As a result, in thisexample, a server receives two hundred and eighty-eight glucose levels,timestamps, and additional data from a single user per day. For twentythousand continuous glucose monitors operating over the course of amonth, the server will receive over one hundred and seventy-five milliondata transmissions including glucose levels, timestamps, and additionaldata. That same server must archive this information, control access toportions of the information, search for selected portions ofinformation, and forward the selected portions of information toauthorized entities. This creates a tremendous processing burden on theserver.

Additionally challenging is that a continuous glucose monitor canwirelessly transmit data such as glucose levels, timestamps, and otherassociated information to multiple displays, and each display canforward the data to the server. In one illustrative example, thecontinuous glucose monitor transmits data to a receiver with a displayas well as to a smartphone, smart watch, personal computer, tablet, orother type of display. In this example, two data streams for each usercan be sent to the server, resulting in duplicative data. In addition,one display may be offline, such as when a smartphone is turned off orout of wireless range from the continuous glucose monitor, so the twodata streams from two displays associated with the same continuousglucose monitor differ. The two data streams can also differ for otherreasons. In one example, the two displays can use different calibrationvalues resulting in different glucose levels based on the same data setreceived from a continuous glucose monitor. Therefore, it would bebeneficial to organize, store, and provide accurate reproduction of datareceived from multiple displays.

Another challenge arises with security of transmission of the datathroughout a system. While some components in a distributed architectureshould be allowed to access some data, others should not. Therefore, itwould be beneficial to restrict unauthorized parties from accessingdata, and for limiting authorized parties to only accessing a subset ofdata. In addition, there can exist a great number of other devices orsoftware applications that access data stored by the server. Consideringthe potential of such large numbers of other devices or softwareapplications, it would be beneficial to provide standardized interfacesfor allowing access to the data. Yet, this may be particularly difficultin the medical device field where the system may be required to obtainregulatory approval as a medical device. Once approved, changes to thesystem may require further regulatory approval, which can be a timelyand costly process. Therefore, it would be beneficial for a modular,standardized interface that can accommodate many different third partycomponents and adapt to differing requests from the third partycomponents without requiring change to the system design.

The present disclosure is directed to systems and methods forcontrolling the distribution and use of data having multiple categoriesof sensitivity (e.g., restricted, less-restricted, etc.) throughout adistributed architecture. In some example embodiments, the architecturein accordance with the present technology allows data to be sent from amedical device (e.g., a continuous glucose monitor) to one or moreconnected display devices (e.g., a smartphone, tablet, or wearable smartdevice like a smartwatch or smartglasses) and provided to a cloudcomputing system designed to distribute the data according to varyingdegrees of sensitivity of the data, e.g., for medical data, proprietary,confidential or patient-identifying information, to control access tothe data by third-parties and/or certain system components based on thedetermined degree of sensitivity. In some implementations in accordancewith the present technology, such third-parties and/or certain systemcomponents would be prevented from accessing restricted data withoutpermission while being selectively allowed to access otherless-sensitive data, e.g., ensuring that unauthorized entities cannotaccess restricted data, and providing a system that can scale toreceive, store, and selectively grant access to large amounts of data.While several examples of a distributed architecture is described forcontinuous glucose monitoring, other example implementations arediscussed below throughout the specification, and the scope of theclaims should not be limited to addressing only embodiments associatedwith continuous glucose monitoring.

The present methods and systems may be understood more readily byreference to the following detailed description of preferred embodimentsand the Examples included therein and to the Figures and their previousand following description.

FIG. 1 illustrates an exemplary system for monitoring glucose levels andcontrolling access to and use of data associated with such monitoring.Such data can be defined as having multiple categories, with eachcategory having one or more levels of sensitivity. The disclosed systemof FIG. 1 can be used for storing and distributing data, wherein data indifferent categories or having different levels of sensitivity can betreated differently within the system. For example, data that identifiesor can be used to identify a patient should not be reproduced to allthird-parties. Only third-parties having proper permissions orauthorizations should be able to access this data. Furthermore, otherdata, such as glucose levels, can be misused by third parties. As anexample, third-parties receiving monitored glucose levels might makeincorrect recommendations to a user on how to control their insulinpump. The system of FIG. 1 allows some data to be treated differentlythan others by separating categories of data, such as public data,private data, real-time data (e.g., raw or calibrated), and other bulkdata, as described below. The system of FIG. 1 can allow some data to betreated differently than others by offering permission-based access todata. Furthermore, the system of FIG. 1 can store and provide access tolarge amounts of data. For example, the system of FIG. 1 can temporarilystore some data in a cloud computing architecture, such as data withinthe a most recent definable time period (e.g., 15 days, 30 days, 60days, etc.), and periodically transfer other data, such as data agedmore than thirty days, to longer-term storage.

With reference to FIG. 1, continuous glucose sensor units 100 a-c obtaina series of measurements relating to glucose levels in patients. Thecontinuous glucose sensor units 100 a-c can be worn, for example, in theabdomen region of patients. A small sensor can extend into the patientto obtain readings of glucose values using, for example, subcutaneousglucose or blood glucose readings. The continuous glucose sensor units100 a-c can also be transdermal devices, intravascular devices, ornon-invasive devices.

Continuous glucose sensor units 100 a-c include a number of componentsto obtain glucose measurements, store the data, calculate glucoselevels, and communicate with displays 104 a-e. The displays 104 a-e canbe dedicated receivers associated with continuous glucose sensor units100 a-c, e.g., including but not limited to smartphones, wearable smartdevices such as smartwatches and smartglasses, personal computers,tablets, and a variety of other computing devices. Although notillustrated, continuous glucose sensor units 100 a-c include nonvolatilememory for storing historical data regarding glucose values, aprocessor, a battery, and a wireless transmitter. The continuous glucosesensor units 100 a-c include transmitters 102 a-c, which can provide anytype of wireless communications, e.g., including a Bluetooth connection,Wi-Fi connection, RF connection, and others, to communicate withdisplays 104 a-e and other computing devices. The wirelesscommunications occur, in some embodiments, between paired, authenticateddevices, and use encryption and other cryptographic techniques, e.g., toensure that communications remain confidential.

While illustrated as a single unit, portions of the continuous glucosesensor units 100 a-c may be removable from remaining portions of thecontinuous glucose sensor unit. For example, reusable electronicsportions of the sensor unit 100 a-c (e.g., data transmitter and/orreceiver, battery, memory, and/or processor), which may be referred toas the “transmitter”, such as transmitter 102, may be removable fromsingle use portions of the sensor unit (e.g., sensor needle) and reusedwith a new single use portion. Further, the continuous glucose sensorunits 100 a-c can include other components to facilitate datacommunications. For example, the continuous glucose sensor units 100include wired ports, such as a USB port, Ethernet port, and others, forcommunicating with other devices and providing data relating to glucoselevels.

The continuous glucose sensor units 100 a-c of FIG. 1 can obtain samplesat predetermined intervals, such as every few seconds, every thirtyseconds, every minute, every five minutes, or on demand in response tothe occurrence of an event (e.g., a command from a user, detection of auser action, such as user movement, and the like). The wirelesstransmitters 102 a-c can be turned off or put into a low power state toconserve battery life while one or more measurements are taken over aperiod of time, and then wake the transmitter back up to wirelesslytransmit the one or more measurements to displays 104 a-e in a batchtransfer. For example, the continuous glucose sensor units 100 a-c wakeup the wireless transmitter every five minutes, transfer data relatingto glucose measurements (and any other data) generated over the lastfive minutes, and transfer the data to displays 104 a-e. The wirelesstransmitters 102 a-c can then be turned off again to conserve batterylife. While an example of transferring data every five minutes has beenprovided, it will be appreciated that longer or shorter time periods canbe used, and the time period can be configured by a user via displays104 a-c.

Further, to the example of FIG. 1, it will be appreciated thatcontinuous glucose sensor unit 100 a and displays 104 a-104 b may beused by a first patient, continuous glucose sensor unit 100 b anddisplays 104 c-d may be used by a second patient, continuous glucosesensor unit 100 c and display 104 may be used by a third patient; andmany other patients may use continuous glucose sensor units andassociated displays. The displays 104 a-e or continuous glucose sensorunits 100 a-c transmit data to the distributed cloud computingarchitecture 106, also referred to as the cloud computinginfrastructure, as described in more detail below.

The data transmitted between continuous glucose sensor units 100 a-c anddisplays 104 a-e can be any type of data relating to monitoring glucosevalues and the operation of the continuous glucose sensor units 100 a-c.For example, the continuous glucose sensor units 100 a-c exchangecalibration data with respective displays 104 a-e on initial startup andperiodically to maintain accuracy of the glucose measurements. A usermay sample their glucose level using a single point glucose meter,enters the value displayed by the test kit into one of displays 104 a-e,and that value is used to calibrate the associated continuous glucosesensor unit. Similarly, data can also be exchanged between otherphysiological monitoring devices (e.g., temperature detection device,blood pressure monitor, blood oxygen content monitor, etc.) and thedisplays 104 a-e, or data can be exchanged between other physiologicalmonitoring devices and the continuous glucose sensor units 100 a-c.

Other examples of data exchanged include an amount of current or voltage(e.g., raw values) measured by a continuous glucose sensor unit, aconverted glucose value (e.g., a calibrated value or an estimatedglucose value) in, for example, mg/dL, and a timestamp associated withthe time when each measurement or value was sampled, alerts related toglucose levels exceeding predetermined thresholds, detected faults inthe system, firmware version, hardware version for the continuousglucose sensor and transmitter, calibration status, the time the sensorwas started and/or stopped, battery voltage, encryption information, atransmitter identifier number, and the like. This data can also beforwarded from a services server, e.g., such as a server associated withthe manufacturer of the continuous glucose sensor unit. Althoughdescribed as continuous glucose sensor units 100 a-c, other medicaldevices may be used with the disclosed embodiments. For example, thesensor units depicted in FIG. 1 as continuous glucose sensor units 100a-c can be any analyte sensor and the transmitted data can reflectanalyte values produced by the analyte sensor unit. Any data of any typetransmitted between the continuous glucose sensor units 100 a-c anddisplays 104 a-e or between displays 104 a-e and the distributed cloudcomputing architecture 106 or between any one the continuous glucosesensor units 100 a-c and displays 104 a-e and any other physiologicalmonitoring device or any other system, device or person can beconsidered a data point.

Displays 104 a-e can be a computing device comprising a display such asa visual display screen, auditory display including speakers, hapticdisplay, and any other type of display. In some implementations, forexample, displays 104 a-e can be used as a dedicated display to use withthe respective continuous glucose sensor units 100 a-c, in whichdedicated it not necessarily exclusive for displaying data from thecontinuous glucose sensor units. For example, the combination of acontinuous glucose sensor unit 100 and a display 104 can, in oneembodiment, be an approved medical device, such as a class III medicaldevice.

Display 104 includes a processor for calculating glucose levels based onreceived measurements, memory for storing glucose levels, ports forwired communications, and wireless communication circuits, e.g., such asBluetooth, Wi-Fi, or RF circuits. In implementations, for example,displays 104 a-c receive data relating to glucose levels from continuousglucose sensor units 100 a-c at predetermined time intervals. Inaddition, display 104 can determine a historical trend of whether auser's glucose levels are trending down, remaining stable, orincreasing. Displays 104 a-e present glucose readings over time so auser can easily monitor glucose levels, and display an actual value ofthe current glucose level.

Displays 104 a-e can also be any type of display associated with apersonal computer, tablet, or smartphone that executes applications fordisplaying data relating to glucose levels. As a result, displays 104a-e includes hardware components typically associated with personalcomputing devices, including processor(s), memory, wireless connections,a USB port, and others.

Displays 104 a-e can execute a plurality of applications, e.g., softwareapplications (“apps”) comprising instructions executable by a processor,that relate to glucose monitoring, health information, exerciseactivity, controlling and monitoring insulin injections, eating habits,and others. In one embodiment, continuous glucose sensor unit 100 atransmits multiple streams of data, and display 104 a receives the samedata that continuous glucose sensor units 100 a transmits to display 104b. Display 104 a can be a dedicated display associated with thecontinuous glucose sensor unit 100 a, and display 104 b can be ageneral-purpose computing device, such as, for example, a smartphone orthe like. The example smartphone can execute one or more applicationsdedicated for use with the continuous glucose sensor unit 100 a, as wellas other applications. The dedicated application controls the use of themedical data received from the continuous glucose sensor unit 100 a,e.g., such as the distribution of the data to other applicationsexecuting on the smartphone to preserve confidentiality and userpreferences, as described in more detail below. For example, thededicated application can also be connected to and provide informationto other third-party applications.

In some embodiments, displays 104 a-e receive and display the entire setof data received from respective continuous glucose sensor units 100a-c. For example, display 104 displays actual glucose levels associatedwith measurements taken by the sensor. The continuous glucose sensorunit 100, an operating system executing on display 104, or dedicatedapplication executing on display 104 (as described above) can restrictthird-party applications from receiving and displaying actual glucoselevels. In some implementations, for example, the third-partyapplications instead can receive a more generic indicator of glucoselevels, such as whether glucose levels are low, normal, or high.Additional details regarding the types of data that can be sent to anddisplayed by display 104 will be provided below.

The displays 104 a-e or continuous glucose sensor units 100 a-c transmitdata to the distributed cloud computing architecture 106. Thedistributed cloud computing architecture 106 organizes, stores, andprovides access to the data by other computers, applications, andthird-parties. The distributed cloud computing architecture 106 includesplurality of different servers, storage systems, and softwareapplications executing both locally and across distributed networks.FIG. 3 provides a diagram of an example embodiment of the distributedcloud computing architecture 106, and is discussed later in this patentdocument.

Communications within the system can be subject to a number of securityprotocols. For example, communications can be encrypted and secured,such as HTTPS and SSL communications. The cloud computing architecture106 can include a firewall that only allows specific and securecommunication on defined ports. In addition, a system including thedistributed cloud computing architecture 106 can use authenticatedsessions with a login with name and password for web service methodsthat a user or remote monitor (described herein) would use to gainaccess to read or alter their information. The login names and passwordsare stored in a secure fashion using hashing and encryption, and patientdata including all data posts from the displays can be likewiseencrypted and stored in a secure fashion by the cloud computingarchitecture 106.

Another security measure includes using an authenticated session thattimes out after a short period of inactivity and also can have a maximumlength. Servers can keep an audit trail or history log of all access tothe system and all changes made to the system. In addition, thirdparties accessing data stored by the cloud computing architecture 106can be required to authenticate themselves and may also be furtherrestricted to only access patients they already know. That is, in someexamples, a consumer's privilege may require them to already know thepatient's internal identifier with the system which would have alreadybeen provided by a patient initiated exchange of any identifyinginformation with that consumer.

FIG. 2 illustrates an exemplary method for separately transmitting andstoring data streams. Given that a system in accordance with thedisclosed technology may support tens of thousands of continuous glucosesensor units 100 transmitting data to the cloud computing architecture106, where each of which can send data through multiple displays 104,the processing demands may be too great for the cloud computingarchitecture 106 to receive a single data stream and separate out theportions that should be assigned to different categories (e.g., publicversus private). One solution is to separate the data streams out priorto transmission to the cloud computing architecture 106, allowing thecloud computing architecture 106 to separately store the data streamsfor quick retrieval. Although this can result in redundant data, thatmay be preferred because it allows the cloud computing architecture 106to compare, for example, public streams received from both a first andsecond display device to determine if the two match. If anydiscrepancies exist, technical support can determine if there is anissue with the system operation and provide a solution. For example,calibration errors with a display 104 a-e may be detected by comparingthe data streams received from separate displays among displays 104 a-e.

Another challenge that can arise is the server of the distributed cloudcomputing architecture 106 being able to quickly retrieve the data.Large numbers of data streams can feed into the cloud computingarchitecture 106, making fast retrieval an issue. Therefore, it would beadvantageous to track the data streams and allow data to be retrievedfrom a given point in time.

In FIG. 2, a continuous glucose sensor unit (e.g., continuous glucosesensor unit 100 a) provides data to a first display (e.g., display 104a) and a second display (e.g., display 104 b) at process 200automatically or in response to a request from either of the twodisplays. The continuous glucose sensor unit 100 a separates the datainto two streams: a public data stream and a private data stream. Forexample, generally, public data includes information that is presentedto a patient in charts or reports such as glucose values,monitor/calibration values, time adjustments, event entries by a patient(like meals, carbs, exercise, etc.), when sensors were started/stopped,which transmitter was used and when, and the like, while private datagenerally comprises information about the system and devices thatcomprise the system such as battery levels, screen durations, errorlogs, raw sensor signals, proprietary algorithm input/output, stackdumps of memory, and the like.

Public data and private data can comprise one or both of real-time dataand bulk data. Bulk data can include, for example, data points such assystem software version information, diagnostic information, otherproprietary data and stored readings such as glucose levels recordedover a time period such as one hour, two hours, etc.; while real-timedata can include, for example, data points such as monitored glucoselevels, timestamps associated with monitored values, glucose monitorstatus, and the like. Generally, real-time data is data that istransmitted by the continuous glucose sensor unit 100 or display 104 asit is created or shortly thereafter (e.g., periodically every oneminute, five minutes, 10 minutes, etc.), while bulk data is data thatmay be stored on the continuous glucose sensor unit 100 or display 104for a longer period of time than real-time data (e.g., one hour) andtransmitted less frequently than real-time data. As described in moredetail below, some data (bulk or real-time, private or public) can beencrypted while other data is not.

Furthermore, the displays 104 can transmit data at different times. Forexample, the displays 104 a-e can send real-time and bulk data to thecloud computing architecture 106. In some implementations, bothreal-time and bulk data can be sent to the cloud computing architecture106 on a periodic basis, with each type of data having a different, orthe same, update period. For example, real-time data can be providedevery five minutes to the cloud computing architecture and bulk databeing provided hourly. Bulk data and real-time data transmitted from acontinuous glucose sensor unit 100 to a display 104 may be the same bulkdata and real-time data that is transmitted from the display 104 to thecloud computing architecture 106, or it may be different. For example,the bulk and real-time data transmitted from the display 104 to thecloud computing architecture 106 may include information about thedisplay 104 or user interactions with the display 104. These are onlyexemplary update time periods and any time period is contemplated byembodiments disclosed herein.

At processes 202 and 204, the first display 104 a and the second display104 b can separately send their data to a server in cloud computingarchitecture 106. The data can include a private header, a private datasection, a public header, public content, and/or metadata describing thetiming of the post and the display making the post. The first and seconddisplays 104 a-b can send the data automatically or in response to arequest from the cloud computing architecture 106. The displays 104-bcan also add additional data to the data received from the continuousglucose monitor 100 a prior to transmission.

The displays 104 a-b can send the data to the cloud computingarchitecture 106 upon receipt or after gathering data for a period oftime. For example, the continuous glucose monitor 100 a can provide bulkdata to the display 104 a hourly, and the display 104 a can collect thebulk data for three hours before providing it to the cloud computingarchitecture 106.

In some implementations, because multiple displays 104 a-b associatedwith the same continuous glucose monitor 100 a provide data, the cloudcomputing architecture 106 may receive redundant data from multiplesources. However, the data may not actually be redundant, as it may beslightly different depending on the time at which the data was obtainedby a display 104. For example, one display 104 a might have been out oftransmission range and therefore received backfilled data, as describedbelow. The other display 104 b might have received the data as scheduledfrom the continuous glucose monitor 100 a. All or some of the data canbe stored separately in data streams on both or either of the display104 and the cloud computing architecture 106. This allows for an audittrail to determine what data came from which device and when.

Furthermore, different alerts can set on each display device 104 a-b.For example, a user might want their phone to provide alerts during theday and their receiver display to provide alerts at night. For example,when a user misses an alert, technical support can access the datastream associated with the particular display from which the user shouldhave received an alert, and determine whether that display received thedata in real-time or as backfilled data due to missing one or moretransmissions from the continuous glucose sensor unit. If the missedalarm came when the display missed transmissions, the display did nothave the data upon which to issue an alarm, allowing technical supportto diagnose the issue. Backfilled data can be tagged differently by thedisplay from real-time data to distinguish it for the cloud computingarchitecture 106. The tag can come in metadata so the cloud computingarchitecture 106 does not have to separately examine the data todetermine if it was obtained in real-time or as backfilled data.Additional examples and description of backfilling data are providedbelow.

At process 206, the cloud computing architecture 106 separately storesthe data from the first display 104 a and the second display 104 b. Thedata can be stored using metadata by providing a timestamp at which timethe data was received at or posted to the cloud computing architecture106. Accordingly, the cloud computing architecture 106 tracks the timeat which the last post was received from a particular display device.The post might contain new data or data that was previously sent,dropped in transmission due to an error or other system malfunction, andthen retransmitting. Metadata allows the display and the cloud computingarchitecture 106 to track the last attempted message transmission fromthe display and received message transmission by the cloud computingarchitecture 106. The one or more servers of the cloud computingarchitecture 106 need not examine the actual data that was transmittedbut instead rely on the metadata to efficiently store and subsequentlyretrieve information.

When new data records are created in the system, multiple othercomputers and services, having proper permissions or authorizations, canbe alerted about this data by requesting notifications from the cloudcomputing architecture 106. For example, a remote monitor device,operable by a remote monitor user remotely monitoring the glucose stateof the user of the continuous glucose sensor unit 100, can receiveinformation about glucose levels by requesting notifications of glucoselevels for the specific patient that the remote monitor device ismonitoring through the cloud computing architecture 106. Third-partyapplications can therefore obtain public information, including theglucose levels, or other information that they have been providedauthorization to receive, whereas a technical support team can alsoaccess proprietary private data.

FIG. 3 illustrates an exemplary embodiment of a system in accordancewith cloud computing architecture 106. There are a number of challengesassociated with receiving and storing large volumes of data. One suchchallenge is simply the volume of data. Receiving data from displays 104a, 104 b on a periodic basis, such as every five minutes, presents alarge load on servers to store the data. This may be compounded bythousands of additional displays associated with other patients alltransmitting data to the same server. The cloud computing architecture106 can both, store long-term data that can be used by third-parties,technical support, and other systems, and provide fast access for recentdata from a large number of patients. In addition, security issues arisefor receiving the data and storing it in a secure fashion, and ensuringthat only authorized devices obtain access to the data. Further, somedata will be sent through a display but it may be desired that thedisplay not be able to access it. An example is system diagnosticinformation sent from a transmitter to a server via a phone that can beused by technical support but is proprietary and should not be displayedto a user. The system of the cloud computing architecture 106, e.g.,depicted in FIG. 3, can allow different data to be treated differently,with varying levels of access by different system components.

In the example embodiment shown in FIG. 3, cloud computing architecture106 includes services server 300 and/or back-end computer architecture306. Displays 104 a and 104 b transmit data to services server 300. Theservices server 300 provides the functions for coordinating storage,retrieval, and notifications relating to glucose levels in the system.In one embodiment, the displays 104 a, 104 b transmit data to theservices server 300 using, for example, HTTPS web services. The dataincludes, for example, glucose values, raw data, diagnostic data, andother types of information such as exercising information or otherhealth-related information. The displays 104 a and 104 b send the datato the services server 300 automatically in some implementations. Thedata can include data from the continuous glucose sensor units 100 aswell as additional data added by displays 104.

The displays 104 a-b can send more than one category of data. Forexample, the displays 104 a-b can send both public and private data, asreal-time data (e.g., glucose values, event entry information, sensorstart/stop, and associated timestamps) and bulk data (e.g., calibration,tech support-related info, alert timing related info), as describedherein.

Real-time data can be provided, for example, every five minutes fromcontinuous glucose sensor units 100 and/or displays 104. Bulk data canbe provided, for example, once every hour from continuous glucose sensorunits 100 and/or displays 104. In some implementations, bulk dataincludes internal system data, such as system operation data, thattypically would not be provided to any third-parties. The real-time dataand bulk data points can be different or overlapping. For example, bulkdata can also include glucose values that are also real-time datavalues. The data can be sent directly from one display 104, such as asmartphone, to another type of the display 104, such as a personalcomputer or other computing device, that uploads the data to theservices server 300. For example, in some embodiments, the display 104 acould be a smartphone or a dedicated receiver device that receives thedata from the continuous glucose sensor unit 100 a, and the display 104b can be a personal computer, in which the smartphone or receiverprovides the data to the personal computer, and the personal computeruploads data through a wired or wireless link. In other embodiments, thedisplay 104 a can be a dedicated display device associated with thecontinuous glucose sensor unit 100 a that receives the data from thecontinuous glucose sensor unit 100 a, and when it is to provide the datato the services server 300 or via the personal computer, it does so viaa cradle communication device (“cradle”). For example, the dedicateddisplay device can be placed in the cradle to connect the two devices.The cradle can include a network connection for uploading data toservices server 300. In another embodiment, display 104 b is asmartphone and it uploads data using an application. The real-time andbulk data can be synchronized with the services server 300 in differentmanners, such as at different time intervals, to facilitate separatestorage and retrieval of real-time and bulk data by the cloud computingarchitecture 106.

In one embodiment, the transmitter 102 in a continuous glucose monitor100 can separate bulk data and real-time data. The transmitter 102 canencrypt all or a portion of the bulk data and pass it through theassociated display 104 to the services server 300 using a key stored onthe transmitter 100. In some embodiments, the display 104 does not havea decryption key for the encrypted bulk data, and therefore acts simplyas a pass-through for encrypted bulk data, but the shared servicesserver 300 and back-end 306 can include the decryption key for encryptedbulk data. The transmitter 102 can also encrypt all or a portion of thereal-time data using, for example, Bluetooth encryption or othertechniques, and the display 104 can receive the real-time data, decryptsome or all of it for use and display, and forward the real-time data toshared services server 300 for storage.

Services server(s) 300 stores data for a predetermined amount of time,such as thirty days, and synchronize data to other devices,applications, and outside companies, along with the back-end computer(s)306. The services server 300 and back-end computer(s) 306 can employdifferent levels of security for different types of data. In the exampleembodiment shown in FIG. 3, the services server(s) 300 includes sharedservices server 304 and data synchronization server 302. Shared servicesserver(s) 304 stores the real-time data separately from the bulk data.For example, the displays can send the data separately or together, andthe data can be separated into real-time and bulk data by the continuousglucose sensor unit 100, the displays 104, or the services servers 300.In one embodiment, the shared services server 304 stores data for only apredetermined amount of time. For example, this allows fast searchingand access to shared data, and also limits the amount of data stored onshared services server 304. In some implementations, shared servicesserver 304 only stores the data for past 30 days, allowing data to bestored for only as long as others devices would need to retrieve thedata. In other implementations, the shared services server 300 can storedata for time periods greater than or less than 30 days.

The services server 300 supports gathering the data posts on apatient-by-patient, and stream-by-stream basis. A client, such as apatient's display 104, device associated with other service 318, aremote monitor devices, or other system component can subsequentlyrequest data by asking for a specific range of data for each patient.The range of data can be based on the time the data was posted to theserver. In some implementations, each transmission of data by a displaycan be assigned to a posting identifier. A request can be made to obtainall data posts that came after a posting identifier that can also betracked by the client.

In some implementations, the system in accordance with embodiments ofthe cloud computing architecture 106 maintains separate record “streams”of posted information for each patient's source display 104, such as asmartphone and/or a receiver dedicated to use with the continuousglucose sensor unit 100. Each post can identify the source type byindicating which display posted the data. This will lead to duplicateposting of patient data, from multiple sources. The services server 300,in some implementations, separately stores these streams of data poststo reduce the complexity on the posting display devices by allowing thedisplay devices to create incremental posts relative only to their ownself-contained contiguous data. Consumers may then maintain or report onthe differences between the streams or may combine the contents of thestreams as desired/required.

Examples of other devices that would access recent data through sharedservices server 304 include remote monitors 322 that receive data inreal-time. A remote monitor 322 is a person who monitors the glucoselevels of another patient. The remote monitor 322 is able to monitor theglucose state of the patient using a display 316, such as a smartphone,tablet, personal computer, etc. that can be in communication with theservices server(s) 300. For example, the remote monitor 322 can be aparent or guardian that accesses and monitors the glucose levels oftheir child using display 316 a and/or 316 b operable by the remotemonitor 322. In some implementations, the display 104 a of a patienttransmits glucose data to shared services server 304, which stores theglucose data for a period of time, e.g., up to thirty days. Display 316a of remote monitor 322 requests and obtains permission to access theglucose data for a particular patient, and requests the glucose datafrom shared services server 304.

One challenge that may arise with remote monitors 322 is that storingany identifying information for the remote monitor could place thoseinteractions under government privacy laws and regulation such as, forexample, HIPPA regulations based on the Health Insurance Portability andAccountability Act (HIPPA) in the United States or other analogous lawsor regulations in other countries. It would be preferable to avoidstoring non-patient (i.e., remote monitor 322) information in the cloudcomputing architecture 106 to avoid implicating any privacy law orregulation. Accordingly, in some embodiments, the cloud computingarchitecture 106 does not receive or store any of a remote monitor'spersonal information. Instead, the remote monitor 322 can be assigned adigital signature or other secure anonymous identifier 308 that isassociated with the remote monitor 322, but the relationship is notstored in the cloud computing architecture 106. For example, theregistration process for a remote monitor 322 can result in thegeneration of a unique number that is an anonymous identification of theremote monitor user. Communications within the system in accordance withembodiments of the cloud computing architecture 106, such as between theshared services server 304 and a remote monitor's display device 316 ause the anonymous identifier 308 instead of information that wouldidentify the remote monitor 322.

In some embodiments, the cloud computing architecture 106 includesback-end computer architecture 306, e.g., such as one or more servers incommunication with the services server(s) 300. The back-end server(s)306 can receive real-time data from shared services server(s) 304 andbulk data from data synchronization server(s) 302. In someimplementations, back-end server(s) 306 stores historical data overthirty days old and receives requests for access to data through otherservices devices 318 that is more than thirty days old.

The back-end server(s) 306 can function as a data warehouse that canstore data either permanently or for longer periods of time for archivalpurposes. In some embodiments, for example, a technical support unit 314provides automated technical support to users and patients for anyissues with system operation. Technical support unit 314 receivesglucose data and other real-time and bulk data and can permanently storethe data to assist with future technical support issues. For example, apatient establishes alerts on displays 104 a, 104 b for when glucoselevels cross a defined level or experience a defined rate of change.When an alert fails to deliver on the display 104 and the patientthereby misses the alert, the patient may call a technical supportservice center 324 to determine why the alert did not issue. Similarly,for example, the patient may have the issue addressed and/or resolvedautomatically by the technical support unit 314 of the back-endserver(s) 306. In this regard, the technical support service center 324may merely provide a human interaction for the patient in addressingand/or resolving the issue via the technical support unit 314. Technicalsupport unit 314 can determine why the patient did not get an alert. Inone example, the data might have been missed by display 104 a because itwas out of wireless range from the continuous glucose sensor unit 100,so the display 104 a did not have the data that should have issued thealert. In such instances, however, the data could have been subsequentlybackfilled into the display 104 a, as described in more detail below, sothe patient looking at the display 104 a believes the display 104 a hadthe data at the correct time.

Back-end server(s) 306, e.g., including technical support unit 314,stores an indication of whether data was received by each display 104 a,104 b in real-time or as part of a backfill process. By determining thatthe data in a display 104 a was backfilled, technical support unit 314can notify the patient that their device did not have the data at therelevant time the alarm should have issued. Similarly, for example, atechnical support service in communication with the technical supportunit 314 of the back-end server(s) 306 can notify the patient that theirdevice did not have the data at the relevant time the alarm should haveissued. The cloud computing architecture of FIG. 3 thereforedistinguishes data based on whether it was received by a particulardevice, such as display 104 a, display 104 b, services server(s) 300,and others, in real-time or as part of a backfill process.

In the embodiment shown in FIG. 3, back-end server(s) 306 also includesa product monitoring server 310 that monitors use of products, issuesupdates to continuous glucose sensor units, and updates software ondisplays and other system devices. As an example, product monitoringserver 310 can determine when a sensor associated with a patient'scontinuous glucose sensor unit 100 should be replaced and automaticallysend an e-mail to the patient as a reminder to order a new sensor.

In the embodiment shown in FIG. 3, back-end server(s) 306 also includessingle sign on server 312. Single sign on server 312 provides a singlesign-on for patients and users accessing a number of differentapplications and the system. For example, if the system were comprisedof separate systems, applications, and components, the user experiencemay not be seamless, as the user would need to log into separatesystems. In an illustrative example, a display 104 can execute anapplication used to monitor continuous glucose levels and an applicationfor controlling insulin injections. The application for controllinginsulin injections requests glucose information, and therefore mayrequire two or even three separate logins: one for the application formonitoring glucose levels, one for the application for controllinginsulin injections, and one to access glucose levels through the insulininjection application. This may be cumbersome for a user. One examplesolution to the challenge in accordance with the disclosed technology ishaving the application for monitoring glucose levels open otherapplications in a web view, allowing use of a single sign-on so that auser enters login information once and does not need to reenterinformation as a user is directed to other modules of the system. Forexample, icons can be provided within the continuous glucose monitoringapplication for other applications, such as an application for viewingreports with more detailed statistical information regarding glucoselevels. When the user selects the icon, the application launches a webview. In this example, the web view request can bypass the sharedservices server 300 to provide a virtually seamless experience for auser to access other services by directly accessing a server that hoststhe second application.

Accordingly, the smartphones and other displays can log into the systemthrough the cloud infrastructure using single sign on server 312. Forexample, a transmitter identifier can be printed on a continuous glucosesensor unit 100 and used as the sign on to correlate the particulartransmitter with a particular patient. In addition or alternatively, forexample, users can have a login name and password, and a variety ofdifferent encryption algorithms can be used in the authenticationprocess.

Other services 318 can include a number of other services that seekaccess to patient data. In some embodiments, other services 318 includecomputer-based data services such as databases, data managementprograms, and/or portals to interface with a user or computer accessingthe data. As an example, a doctor 320 using a computing device like apersonal computer, smartphone, tablet, etc. can request access throughother services 318 to patient data stored by services server(s) 300. Forexample, the doctor might request recent and past glucose levels toanalyze whether insulin injection dosages should change, and to trackpatient progress between doctor's office visits. The other services 318,in one embodiment, receive real-time data through services server 300for a period of time, e.g., the past thirty days. Other services 318 cansynchronize data and save data periodically through the servicesserver(s) 300. For example, some other applications can request datahourly, others daily, and others weekly to have the data from servicesserver(s) 300. For example, other services 318 can include applicationsthat request data to perform data analytics, both for individualpatients and for classes of patients. When other services 318 requestdata beyond the age range stored by services server(s) 300, that requestis sent to and processed by back-end server(s) 306, which storeslonger-term archived bulk and real-time data. The timing as to whenvarious components of the system can request access to bulk andreal-time data can vary. For example, the cloud computing architecture106 can restrict other services 318 to only accessing data once per day,allowing full access at any time, or on a variety of other timeframes.

It will be appreciated that other embodiments of the cloud computingarchitecture 106 of FIG. 3 can include fewer or additional components.In addition, the system in accordance with embodiments of the cloudcomputing architecture 106 can include a plurality of cloud computingarchitectures so that fewer than all of the displays transmit data to asingle cloud computing architecture. For example, a plurality ofconnected cloud computing architectures can be used throughout differentgeographical regions, although other arrangements are also possible todistribute the computing load.

Reference will now turn to FIG. 4, which illustrates a method forstoring data in separate groups. In some implementations, the continuousglucose sensor units 100 and displays 104 can create and transmitdifferent types of data (e.g., real-time and bulk data, private andpublic data) that may need to be handled differently. In particular, allof the data may not be appropriate for retransmission to third-partiesor other system components, such as data that contains proprietaryinformation about system operation and data that can be used to identifya patient. Separating the data so that it can be handled differently,including different storage locations, different policies forcontrolling access to the data, and different storage durations canpresent a challenge. The data can include data relating to glucoselevels, data about functioning of the system, user interaction with thesystem, and other types of data.

At process 400, the continuous glucose sensor unit 100 prepares dataincluding glucose levels and other data for transmission. The dataincludes, for example, measured glucose values and diagnostic data. Thedata can include a first set of data (e.g., real-time data) and a secondset of data (e.g., bulk data). Real-time data can include one or more ofglucose values, a current status of a continuous glucose sensor,timestamps associated with measurements used to obtain the glucosevalues, and the like. Bulk data can include one or more of informationfor calibrating the continuous glucose sensor unit 100, information usedfor technical support of the continuous glucose sensor unit 100, and thelike. For example, information for calibrating the continuous glucosesensor unit 100 can include the previously discussed values sampled by apatient when using a test kit. In some implementations, the electronicsunit (e.g., transmitter 102) of the continuous glucose sensor unit 100prepares the data by aggregating and/or formatting the data into form(s)or groups to be transmitted. For example, as described in more detailbelow, the continuous glucose sensor unit 100 can encrypt some or all ofthe data. In some implementations, the data is prepared in a mannercorresponding to the sets of data, e.g., the real-time data and the bulkdata, which can be prepared differently for the different sets of data.

At process 402, the continuous glucose sensor unit 100 transmits theglucose data and other data to one or more displays 104, some of whichmay be encrypted. In some of the embodiments, each of the displays 104can store a decryption key to decrypt some, but not all, of theencrypted data to control access by a patient to certain types of data.For example, the displays 104 can decrypt real-time data includingglucose levels, from which the displays 104 can generate and display agraph including the current and past glucose levels over a period oftime, such as the most recent hour, six hours, or day. In some of theembodiments, the display 104 does not have a key to decrypt bulk data,such as system diagnostic information and/or raw data values in order tokeep that data confidential.

At process 404, the one or more displays 104 forward the data to thecloud computing architecture 106, also referred to as cloud computinginfrastructure or cloud infrastructure. Process 404 may, in someembodiments, occur automatically without a request from the user, e.g.,either as data is received or at predetermined times. The displays cansend different types of data to the cloud computing architecture 106 atdifferent times. In addition, the display 104 can add more data to thedata received from the continuous glucose sensor unit 100 andautomatically forward the additional data to the cloud computingarchitecture 106. Such additional data can include, for example, thetimes of alarms, the time data was viewed on a display, data that isfurther processed by the display 104, and the like.

At process 406, the cloud computing architecture 106 stores the data inseparate groups. In some implementations, for example, the sharedservices server(s) 304 can store real-time data and back-end server(s)306 can store the bulk data. Various components of the cloud computingarchitecture 106 can store decryption keys for both groups of data torestrict access to certain data types. For example, back-end server(s)306 can store decryption keys for both real-time and bulk data, sotechnical support (e.g., technical support unit 314) can access bothtypes of data. However, other services 318 may not store a decryptionkey for bulk data such that it cannot be accessed through other services318. As a result, the cloud computing architecture 106 selectivelydetermines whether to grant access to the various categories (e.g.,first set and the second set) of data by the category of data and theone or more requesting systems trying to access the data. For example,in some embodiments, the cloud computing architecture 106 can comprise atable that identifies the requesting systems. A request for datareceived by the cloud computing architecture 106 can identify the systemmaking the request such that the requesting system can only accesscertain categories of data.

Reference will now turn to FIGS. 5 and 6, which illustrate exampleembodiments of an encryption system and method for encrypting data,respectively. FIGS. 5 and 6 provide techniques to protect sensitive datafrom unauthorized access by third parties. A challenge in the art is theability to distribute data to entities that are only authorized toreceive a subset of the data. For example, the cloud computingarchitecture 106 can grant a service access to data that does notidentify a patient, but deny the service access to patient-identifyingor system diagnostic data. At the same time, the cloud computingarchitecture 106 can allow other entities, such as technical support,full access to system diagnostic data but not always patient-identifyingdata. The varying levels of security and authorization can usetechniques, such as those in exemplary FIGS. 4 and 5, for controllingaccess to data by system components.

Conceptually, the system of FIG. 5 places a message inside a box that islocked at the transmitter 102. Only the intended recipient, such as theservices server(s) 300 and/or back-end server(s) 306, has the key. Insome implementations, the transmitter 102 sends the message to thedisplay 104, such as a smartphone or dedicated receiver, which sends theencrypted message on to the services server(s) 300. The display 104 actsas a pass-through without the ability to decrypt all of the data.

In particular, transmitter 102 a includes memory 500, which can be anytype of nonvolatile memory that can store a public key 506, a secret key504, and private data 502. The public key 506 is a public encryptionkey, such as a key for RSA 1024 encryption. The secret key 504 is anadditional private key used for another level of encryption, such as theadvanced encryption standard. The private data 502 can include, forexample, the bulk data previously described. The secret key 504 can bestored on the transmitter 102 a during the manufacturing process.

The transmitter 102 a sends the secret key 504 wrapped by the public key506 to each of the displays 104 a, 104 b, as illustrated at 508, andalso the protected data wrapped by the secret key 504, as illustrated at510. The displays 104 a, 104 b do not have the public key 506, so theycannot access the secret key 504 or use the secret key 504 to access theprivate data 502. Instead, the private data 502 includes data thatpasses through the displays 104 a, 104 b for transmission to theservices server(s) 300 for decryption. In this manner, the displays 104a, 104 b are restricted from accessing certain private data, while thecloud computing architecture 106 can access that data. In particular,back-end 306 stores the private key as shown at 514.

Although not illustrated, and as described below, the transmitter 102also transmits other data that the displays 104 a, 104 b can decrypt anddisplay to a user. This data includes, for example, real-time data andcan be encrypted according to Bluetooth encryption schemes and othertechniques. Display 104 b can be connected to a PC uploader program 512,which can execute on a personal computer, tablet, or other computingdevice.

With reference to FIG. 6, a corresponding method for encrypting andtransmitting data, e.g., implementable by devices and a cloud computingsystem architecture in accordance with the present technology, will bedescribed. At process 600, the transmitter 102 encrypts a first set ofdata. For example, the transmitter 102 encrypts real-time data includingglucose values using Bluetooth encryption. At process 602, thetransmitter 102 encrypts a second set of data, such as bulk data thatincludes proprietary information that should not be accessible by thedisplays 104. The second set of data can be encrypted using the advancedencryption standard and a variety of other techniques.

The transmitter 102 transmits the first and second sets of data to thedisplay(s) 104 at process 604. The transmitter 102 sends the first andsecond sets of data either together or at different times. For example,the first set of real-time data can be sent every five minutes, whilebulk data can be sent hourly. In this manner, the transmitter 102 sendsthe two sets of data, each encrypted using different techniques, asdifferent data streams to the display(s) 104.

At process 606, the display(s) 104 decrypt the first set of data. Thedisplay(s) 104 presents the data to a user on a user interface, uploadsthe data to the cloud computing architecture 106, provides the data toother applications, and stores the data in local memory. The display(s)104 can forward both the first and second sets of data to the cloudcomputing architecture 106 at process 608. Process 608 occursautomatically upon receipt of the data, periodically, or in response toa request from a user or the cloud computing architecture 106. In someimplementations, each of the displays receives the first and second setsof data in different streams at different times and forwards the streamsto the cloud computing architecture 106 automatically upon receipt. Inthis manner, the cloud computing architecture 106 receives the first andsecond sets of data, each encrypted differently, at different times.

At process 610, the second set of data is decrypted. In one embodiment,the second set of data, or a portion of it, can be decrypted by thecloud computing architecture 106. In another embodiment, the second setof data (or a portion of it) can be sent to another location, such asfor example, an inulin provider that has a key and is able to decryptthe second set of data. Although the display(s) 104 lack the decryptionkey to access the second set of data, the cloud computing architecture106 (e.g., in the shared services server(s) 300 and/or back-endserver(s) 306) and/or other locations (e.g., insulin provider) includethe decryption key. In some implementations, the cloud computingarchitecture 106 receives and decrypts the first set of data, andprovides it to both local short-term storage in the cloud servicesserver and longer-term storage in the back-end.

Reference will now turn to FIG. 7, which illustrates an exemplary methodfor providing a common interface through which data can be accessed. Thecloud computing architecture 106 can provide an integrated system withmany different components, including third-party systems. However, insome instances, this can be problematic from a regulatory standpoint, aseach time a change is made to any one component, the entire systems mayneed to undergo regulatory review. To address this problem, for example,the cloud computing architecture 106 can be configured such that eachmodule can be seen as being independent from a regulatory standpoint sothat each module can undergo separate regulatory review. In particular,the cloud computing architecture 106 can provide a set of standardapplication program interfaces to provide a known format forinterfacing, allowing the various components to be built and maintainedseparately.

Another challenge faced by the cloud computing architecture 106 is howto handle a large number of requests for access to data of differentpatients. For example, requests can originate from a number of differentservers, computing devices, and software applications, which can havevarying formats of requests and capabilities for receiving andprocessing responses. If the cloud computing architecture system 106were to change to accommodate each new request and response type, thesystem may need to be re-certified as a medical device, which can be atimely and costly process. The method of FIG. 7 therefore provides acommon interface through which to receive requests, ensuring a modularsystem that does not need to change for new request types.

In one example, the cloud computing architecture 106 employs a hub andspoke framework, where the hub contains rules as to what information canbe accessed by each particular spoke. In this way, the spokes only haveaccess to information that is appropriate and/or needed by that spoke.Examples of spokes include the remote monitoring application,third-party applications, and other services.

At process 700, the cloud computing architecture 106 defines rules forcontrolling access to data. The rules can include user permissions,approval processes for remote monitors, approval process for thirdparties and other software applications, and rules for controllingaccess from components of the cloud computing architecture 106 itself.For example, a remote monitor need not have access to proprietary bulkdata, while technical support can access the bulk data. Other examplesfor rules include controlling the volume of data that can be accessed,controlling the timing of when data can be accessed, and others. Suchrules can be implemented when the system is put in place for a user or,for example, by an administrator that has permissions and authorizationsto set such rules in the cloud computing architecture 106. Suchpermissions and authorizations may have to be in compliance with privacylaws and regulations.

At process 702, the cloud computing architecture 106 provides a set ofapplication program interfaces for accessing data. The applicationprogram interfaces define a standardized interface through whichrequests for data can be received. The standardized interfaces areprovided to third-parties and application developers to create requeststhat adhere to the application program interface. At process 704, acomputing device or application provides a request through one of theapplication program interfaces to the cloud computing architecture 106.

Next, at process 706, the cloud computing architecture determineswhether to grant the request for access to data based on the rulesdefined in process 700. For example, the cloud computing architecture106 identifies the requesting party and determines whether therequesting party should obtain access to the requested data. If, atprocess 706, the cloud computing architecture determines that therequesting party does not have access to the requested data, then atprocess 708 the cloud computing architecture 106 denies the request. If,at process 706 the cloud computing architecture 106 determined that therequesting party does have access to the requested data, than at process710 the cloud computing architecture 106 grants the request. Processes704-710 can be performed by a number of different components within thecloud computing architecture. For example, requests for recent data canflow though the services server(s) 300, while requests for olderarchived data can be processed by back-end server(s) 306.

FIGS. 8 and 9A-9D illustrate exemplary method and system diagrams inaccordance with embodiments of the disclosed technology for handlingrequests from a computing device such as display 104 to the cloudcomputing architecture 106. As discussed above, handling requests from anumber of different servers and applications can present challenges tothe cloud computing architecture 106. One solution is to provide commonapplication program interfaces at the cloud computing architecture 106,as described in FIG. 7. Another solution includes placing requests in acommon format using an application (app) executing on the display 104.FIGS. 8 and 9 provide an example of placing a request in a common formatusing an application executing on the display 104.

Referring to FIG. 8, display 104 includes a continuous glucose monitorapplication 800 and a plurality of other applications 802 a, 802 b. Thecontinuous glucose monitor (CGM) application 800 can be an applicationdesigned to interface both with transmitter 102 of the continuousglucose sensor unit 100 and the cloud computing architecture 106.Applications 802 a, 802 b provide data requests 804 to the CGMapplication 800, which can include rules logic as described above inrelation to FIG. 7 to determine whether the data request should begranted for the requesting application 802 a, 802 b.

If the request should be granted and the data is stored locally, the CGMapplication 800 provides the data response as shown at 810. In someembodiments, the CGM application 800 forwards the data requests 806 tothe cloud computing architecture 106, which determines whether to grantthe request using the techniques described in FIG. 7. If the requestshould be granted, the cloud computing architecture 106 sends the dataresponses 808 to the CGM application 800, which forwards the dataresponses 810 on to the requesting application 802 a or 802 b.

FIG. 9A illustrates an exemplary embodiment of a user interface of CGMapplication 800 executing on display 104. The CGM application 800displays, at 904, information relating to glucose levels including achart of recent glucose levels, a current glucose level (e.g., 86 mg/dL,and a trending pattern (e.g., rising, steady, or dropping)). In someimplementations, the CGM application 800 displays icons 900, 902 aslinks to other applications, such as applications 802 a, 802 b describedin FIG. 8. In this example, the icon 900 links to an exerciseapplication, and the icon 902 links to an insulin application. Theselinks within the CGM application 800 allow a user to log into multipleapplications using a single login, as described above regarding singlesign on 312 in FIG. 3. In addition, the links can provide a convenientway for users to access other information stored by differentapplications, whether from the same or a different manufacturer, whichare relevant to glucose levels and trends.

FIG. 9B illustrates an exemplary embodiment of a system in accordancewith cloud-server architecture 106 for performing aspects of thedescribed technology. In this illustration, display 104 a comprises asmartphone executing an application such as CGM application 800described in relation to FIG. 8. In other instances, display 104 a maybe a computing device such as a laptop computer, desktop computer,tablet, PDA, wearable computing device, and the like. For example,display 104 a is in communication with continuous glucose sensor unit100. The display 104 a may be communicating wirelessly with continuousglucose sensor unit 100, or it may be connected to the continuousglucose sensor unit 100 through a wire or optical cable.

The display 104 a can receive a plurality of types of data fromcontinuous glucose sensor unit 100 and transmit the plurality of typesof data to cloud server architecture 910, an example embodiment of thecloud computing architecture 106. Data transmitted from the display 104a to the cloud server architecture 910 may be transmitted at differenttime periods based on a classification assigned to the data. Data may beclassified as real-time data and bulk data. Real-time data may betransmitted from the display 104 a to the cloud server architecture 910at a higher frequency such as once every minute, once every fiveminutes, once every 10 minutes, etc., while bulk data may be transmittedfrom the display 104 a to the cloud server architecture 910 at arelative lower frequency than the real-time data such as once every 30minutes, once every hour, once every two hours, etc.

For real-time information, data transmitted from the continuous glucosesensor unit 100 is received by the display 104 a and transmitted to areal-time server 908 that is included as part of the cloud-serverarchitecture 910. The real-time information includes one or more ofestimated glucose value(s) (EGV), glucose concentration rate of changeinformation, CGM alert information, raw sensor data, and/or other typeof public or private data discussed herein. Real-time data is separatedfrom bulk data because action may need to be taken based on thereal-time data in an immediate or timely manner. Further, the real-timeserver 908 is configured to handle a large amount of real-time data on arapid basis. For example, a glucose monitoring system may have up to150,000 or more users and each user may transmit up to 288 values perday from the respective user's display 104 a to the real-time server908.

Because of the volume and frequency of data that must be managed by thereal-time server 908, in some instances a locator service may be used.Data and control flows associated with an exemplary locator service areshow in FIG. 9C. At the beginning of an application session, the clientapplication executing on a smartphone, e.g., such as the CGM application800 as described above, calls the locator service (running, for example,on real-time server 908) and receives a URL that it uses for subsequentcalls. The input parameters typically include the application name,application version and a country code. The locator service uses theparameters to determine where to go (hence the term locator) for allother services. This approach provides the ability for the real-timeserver 908 to scale out without requiring the application to be changed;and the ability for the server to provide different serviceimplementations for different app revisions or countries. Existingapplications that do not use the locator service still continue to work.The locator service includes logic to determine where to send apprequests in a dynamic manner.

With reference again to FIG. 9B, information can be transmitted from thereal-time server 908 to a remote monitor 316 b using various mechanisms.The remote monitor 316 b can be a device such as a smartphone executingan application (app) such as a remote monitoring app that is designed todisplay to the remote monitor user at least some data associated withthe glucose data from CGM application 800 described in relation to FIG.8. For example, in one instance at least a portion, if not all, of thereal-time information is pushed from the real-time server 908 to one ormore remote monitors 316 b. The real-time information may be deliveredon a periodic basis to the remote monitors 316 b such as once every 30seconds, once every minute, once every two minutes, once every fiveminutes, once every 10 minutes, etc. In some implementations, thereal-time server 908 can monitor the real-time information for trendsand tendencies, and make the remote monitors 316 b aware of such trends.When data is pushed to the remote monitor 316 b, it may require that theremote monitoring application on the device 316 b be open and running.If the remote monitoring application is not open and running on theremote monitor 316 b, then the data is queued at the real-time server908. In some implementations, once the remote monitoring application isopened on the remote monitor 316 b, the data is automatically pushed tothe remote monitor 316 b. In some implementations, once the remotemonitoring application is opened on the remote monitor 316 b, the useris notified of awaiting data. Using the remote monitoring application,for example, the remote monitor user may then request the data to betransmitted from the real-time server 908 to the remote monitor 316 b.In some implementations, if the remote monitoring application is notopen and running on the remote monitor 316 b, a notification such as atext message (e.g., SMS or MMS) is sent from the real-time server 908 tothe remote monitor 316 b as the remote monitor 316 b would not havereal-time data on hand to trigger an alert on its own when the remotemonitoring application is closed (in background on iPhone, for example).

In some implementations, the real-time server 908 interfaces with theremote monitoring application on the remote monitor 316 b and wakes theremote monitoring application. Once the remote monitoring applicationwakes, it requests data from the real-time server 908.

Remote monitors 316 b are allowed access to receive certain informationfrom the real-time server 908. This is information that is related toonly a defined one or more continuous glucose sensor units 100 and theirrespective displays 104, e.g., operating the CGM app 800. The remotemonitor 316 b is not allowed to access data that is not authorized. Insome implementations, the remote monitor 316 b can send a request to thereal-time server 908 and data associated with at least one of the one ormore continuous glucose sensor units 100 and respective displays 104that the remote monitor 316 b is allowed to read will be delivered tothe remote monitor 316 b subsequent to the request. In someimplementations, the remote monitor 316 b can be a smartphone. In someimplementations, the real-time server 908 can comprise a Class II deviceas defined by the U.S. Food and Drug Administration (FDA), and data ishandled in accordance with that classification.

In some embodiments, the cloud-server architecture 910 further includesbulk data collector (BDC) 912 and bulk data distributor (BDD) 914. Insome embodiments, BDC 912 and BDD 914 are data processing enginesoperated on one or more computers, e.g., servers, in communication withone another. In some implementations, the display 104 a sends bulk data(as described herein) to the BDC 912 on an intermittent basis. Forexample, the display 104 a may send bulk data from the display 104 a tothe BDC 912 once every hour. In some implementations, bulk data isuploaded from the continuous glucose sensor unit 100 to a computer 916,e.g., a personal computer. At least a portion of the bulk data is thentransmitted from the computer 916 to the BDC 912. Similar to above, datamay be transmitted on a periodic basis from the computer 916 to the BDC912. For example, data may be transmitted once each hour from thecomputer 916 to the BDC 912. The data transmitted to the BDC 912 cancomprise private and public data (as described herein). In someimplementations, the BDC 912 can comprise a Class II device as definedby the U.S. Food and Drug Administration (FDA) and data is handled inaccordance with that classification.

As noted, the cloud-server architecture 910 also includes BDD 914. TheBDD 914 provides fan-out capability for data received from the BDC 912.For example, at least a portion of the data from the BDC 912 can beprovided to one or more of a technical support tool 922 and a long-termdata warehouse 918. Warehoused data can include public and private data.Technical support tools 922 can include, for example, a share supporttool, a repository tool, and a transmitter tool. The share support tool(a tool that provides technical support related insights for display 104a and remote monitor 316 b) includes an ability to present data tablesand data charts that are sent from the display 104 a (automatically) andthe continuous glucose sensor unit 100 (on demand by user). In someimplementations, the data tables can present all data that was sent fromthe display 104 a and continuous glucose sensor unit 100 to the dataserver (the real time server 908 or the bulk data collector 912),categorized by data type (e.g., EGV data, logs, etc.) and by data source(display 104 a or continuous glucose sensor unit 100). In someimplementations, the data charts present the data from tableschronologically in a visual form. The data sources can be identified inthe chart. The repository tool supports data visualization of thedisplay 104 a and continuous glucose sensor unit 100 data, as datatables and charts. The repository tool includes support of continuousglucose sensor unit 100 data visualization. For example, when a userreturns a receiver for investigation, the receiver can be downloadedusing this tool to further investigate the complaint, in-house.

At least a portion of the data from the BDD 914 can be provided to arepository 920 for analysis and/or reporting. This information isgenerally called retrospective data. Retrospective data can generally bedefined as bulk data and any real-time data that was generated in thepast. For example, real-time data not generated within the last fiveminutes can be considered retrospective data. In some implementations,the BDD 914 can comprise a Class II device as defined by the FDA, anddata is handled in accordance with that classification.

Generally, access to the data shown in FIG. 9B is controlled. Forexample, an authorization manager (not shown in FIG. 9B) is used tocontrol third-party access to the BDD 914, the retrospective data 920and the data warehouse 918. In some implementations, the authorizationmanager can be token based. Access to certain data can be allowed orrestricted based on the token held by an accessing third party.Optionally or alternatively, a patient can provide a third-party withaccess to that particular patient's information. For example, an adultpatient may provide a remote monitor 316 b. Based on responses from thethird-party, a token can be customized to the third-party'sauthorization. In some implementations, a third-party can access certaininformation (e.g., a certain patient's data) using, for example, a loginthrough a social media website such as Google, Facebook, Twitter, etc.

FIG. 9D is a flowchart illustrating a method for securely collecting,analyzing and reporting data related to glucose monitoring levels by aplurality of continuous glucose monitors. At process 9002, data isreceived by a plurality of display devices (e.g., display(s) 104) from aplurality of continuous glucose monitors (CGMs), e.g., continuousglucose sensor units 100. At process 9004, the data is classified into aplurality of classifications based on data type. In someimplementations, classifying the data into a plurality ofclassifications based on data type comprises classifying the data asreal-time data and bulk data. In some implementations, the display 104classifies the received data into the plurality of classifications basedon the data type, whereas in other implementations the continuousglucose sensor unit 100 implements the process 9004 prior to the process9002 to classify the data into the plurality of classifications based onthe data type. In such implementations, the continuous glucose sensorunit 100 may classify only some of the data, in which the display 104may classify the received unclassified data and/or reclassify thereceived classified data.

At process 9006, the classified data is transmitted from the pluralityof display devices to a cloud server architecture in accordance with thepresent technology, e.g., cloud server architecture 106. The cloudserver architecture 106 comprises at least a plurality of servers thatreceives the data from the plurality of display devices on anintermittent basis, such as the system in accordance with the cloudserver architecture 910. The plurality of servers of the cloud serverarchitecture can comprise at least a real-time server and a bulk datacollector, e.g., real-time server 908 and BCC 912, respectively. In someimplementations, the cloud-server architecture may further comprise alocator service, wherein the plurality of display devices connect to thecloud server architecture through the locator service. The data routedto a particular server of the plurality of servers is determined by thedata type and the intermittent basis or transmission from the displaydevice to the server can vary depending upon data type. For example,real-time data is routed to the real-time server from the plurality ofdisplay devices and the bulk data is routed to the bulk data collectorfrom the plurality of display devices. The real-time data may be routedto the real-time server from the plurality of display devices at anintermittent basis that is more frequent that the intermittent basisthat the bulk data is routed to the bulk data collector from theplurality of display devices. For example, the real-time data may berouted to the real-time server from the plurality of display devicesonce every five minutes and the bulk data is routed to the bulk datacollector from the plurality of display devices once every hour.

At process 9008, data is received by a plurality of remote monitordisplay devices (e.g., remote monitor 316 b) from one of the pluralityof servers, e.g., real-time server 908. The data sent to each of theplurality of remote monitor display devices can depend upon the datatype and upon the display device that transmitted the data to the one ofthe plurality of servers. In some implementations of the process 9008,the data is sent to the plurality of remote monitor display devicesimmediately upon receipt by the one of the plurality of servers of thecloud server architecture. Whereas in some implementations of theprocess 9008, the cloud server architecture (e.g., real-time server 908)processes the data according to rules associated with each remotemonitor 316 and sends data in accordance with the rules to therespective remote monitor device. At process 9010, at least a portion ofthe data received by the plurality of servers is routed to an analysisand report engine. In some implementations of the process 9010, a BDD914 of the cloud server architecture provides the least a portion of thedata to one or more of the tech support tools 922, data warehouse 918,and/or repository 920. The data is analyzed and reports generated by theanalysis and report engine.

Backfilling

FIG. 10 illustrates an exemplary method for backfilling data. Onechallenge that can occur when providing data to multiple displays and adistributed cloud computing architecture is ensuring that eachapplication or device includes up-to date data. For example, a user canturn off an application, such as the CGM application 800, such that theapplication executing on the display device (e.g., display 104) will notreceive data. Or, the display might be turned off. Even if the displayis on and receives the data, it might be turned off or disconnected fromthe network when it normally would forward the data to the cloudcomputing architecture. If an application or device does not receivedata, it will not be up to date. FIGS. 10 and 11 describe exemplarymethods that allow data to be backfilled into an application to bringthe application up to date. Up to date can mean that the application orserver has all data available to it.

Additional challenges arise with the use of multiple data streamsthroughout the system as described herein. For example, a real-time anda bulk data stream can be separately sent to a plurality of displays 104by continuous glucose sensor units 100, which forward those data streamson to a cloud computing architecture 106. The cloud computingarchitecture 106 can receive, and separately store, multiple copies ofdata streams from different displays connected to a common continuousglucose monitor. For example, there may also be some differences in thedata streams depending on which display forwards the data to the cloudcomputing architecture 106 due to different calibration values and theability of the displays to add their own additional data to the datastreams.

Another challenge can arise with the user being able to distinguishwhether data was obtained as it was scheduled to be received(“as-scheduled data”) or as part of a backfill process. Accordingly, theuser interface may display the data differently depending on whether itwas obtained as scheduled or backfilled. For example, backfilled datacan be displayed differently. In one non-limiting example, as shown inFIG. 12B, backfilled data can be shown by using a dashed line 1204 onthe line indicating glucose levels. Other ways of showing backfilleddata as distinguished from as scheduled data is using different colorline segments for the backfilled data and the as-scheduled data.Referring to FIGS. 12A and 12B, in some embodiments, the display 104 mayhave an orientation sensor such as are available in smartphones so thatwhile in portrait view 1200, the backfilled data points are displayedthe same as real-time data points, but when the display is oriented inthe landscape mode 1202, backfilled data can be displayed differently.For example, a synopsis or condensed version of the data may bedisplayed in the portrait view 1200, but when oriented in the landscapemode 1202, additional details can be displayed.

Returning to FIG. 10, at process 1000, a continuous glucose monitor(e.g., continuous glucose sensor unit 100) transmits data. The data caninclude both real-time and bulk data, which can be encrypted asdescribed previously. The glucose values can be time stamped to trackwhen the continuous glucose monitor sampled the glucose level andfacilitate checks to make sure that various system components include acomplete data set with all glucose samples.

In some implementations, the continuous glucose monitor transmits dataperiodically, such as every five minutes, allowing the monitor andassociated transmitter to be placed in a low-power state to conservebattery life. In other implementations, the continuous glucose monitortransmits data at intervals other than five minutes. Both real-time andbulk data can be transmitted at each period, or real-time data can betransmitted every five minutes while bulk data is transmitted lessfrequently, such as hourly.

Next, at process 1002, the display device(s) in communication with thecontinuous glucose monitor, such as display(s) 104, distribute thereceived data, which can include both real-time and bulk data. Thedisplay(s) distribute the data to the cloud computing architecture 106,which can include both short-term storage (e.g., up to thirty days) suchas in services server 300 and longer-term storage such as in back-endserver 306. The displays can distribute the real-time and bulk data tothe cloud computing architecture 106 as separate data streams.

Next, at process 1004, components of the data communication ecosystem inaccordance with the present technology can identify missing data.Because the data streams are distributed throughout the system, it ispossible that one or more components that should have received the dataupon distribution did not. For example, a display may be out of wirelessrange from a continuous glucose monitor, or a network connection withinthe cloud computing architecture can be down. In some implementations,computing devices, such as servers in the cloud infrastructure, might bedown or undergoing maintenance and therefore do not receive the data asit is distributed.

The various components of the system can determine whether any data ismissing. For example, the display 104 itself can determine whether it ismissing any real-time data by examining the timestamps associated withglucose values or other markers indicating an order of data (e.g., eachglucose value is associated with a consecutively numbered value). Ifthere is a gap in the timestamps or other marker, such as when a glucosevalue was not received for fifteen minutes despite expecting glucosevalues from the continuous glucose sensor unit 100 every five minutes,the display 104 identifies the data as missing. Similarly, the cloudcomputing architecture 106, e.g., including the services server(s) 300and back-end server(s) 306, can determine whether any data is missing byexamining timestamps or other marker. In addition, for example,third-party applications can determine if any data is missing. In someimplementations, the data synchronization server 302 can determine ifany display 104, the services server(s) 300, or the back-end server(s)306 is missing data. In this way, it can be determined by the cloudcomputing architecture 106 whether each component having missed datashould backfill the missed data.

At process 1006, the component that identified it was missing datadetermines whether to obtain the missing data. There can be a maximumamount of time during which to backfill data. For example, data that wasmissing from more than six hours previously might not be backfilled intodisplay 104 that missed a large number of transmissions from thecontinuous glucose sensor unit 100. Other components of the system, suchas the back-end server(s) 306, can backfill all missing data withouttime limitations, in some implementations. Similarly, components of theecosystem such as the display 104 may only backfill some categories ofdata after a certain time period has elapsed (e.g., six hours) while notbackfilling other types. Furthermore, the backfill period may be lessthan the period for which data may not have been available. For example,bulk data may be backfilled even after a six hour window where data wasmissed, while real-time data may not be. Furthermore, the backfillperiod may be less than the period for which data may not have beenavailable. For example, data may not have been available to a displayfor the past six hours, but when data becomes available, the display mayonly backfill the last two hours rather than all six hours of misseddata. In another example, although display 104 may be missing for anextended period (e.g. six hours), the display may only backfill a subsetof that time (e.g., two hours) during a given period of time in order topreserve resources (e.g., battery life) of components of the system.Determining whether to backfill data may be done because after a certainamount of time, some of the data may become stale to certain componentsof the system, backfilling may consume too much battery power of one ormore components of the system (e.g., transmitter 102), and/or acomponent of the system (e.g., display 104) requesting the backfilleddata may only be configured to display a certain range of data, such asthe last six hours, making backfilling further than the range possiblyunneeded. Computational and storage needs may also be decreased by onlyselectively backfilling data.

If the component determines that it should not obtain the missing data,the method of FIG. 10 can return to identify any additional missingdata. For example, display 104 can determine that it missed data for aperiod of ten straight hours. In this example, it may determine to notobtain data older than six hours previously, or the transmitter 102 ofthe continuous glucose sensor unit 100 may have only stored the past sixhours of data, and return to identify further missing data within thelast six hours at process 1004.

If the missing data should be obtained, at process 1008 the componentbackfills the missing data. In some implementations, the componentbackfills from the oldest available data (or the oldest time perioddesired) to the most recent time period. In other implementations, thecomponent backfills from the most recent data to the oldest. The processof backfilling missing data can occur with respect to an individualstream, such as real-time or bulk data, or both streams. As examples,display 104 can request missing data either from the continuous glucosesensor unit 100 or from services server(s) 300. Services server(s) 300can also be missing data, and it can, in some implementations, receive,for example, four data streams associated with a single continuousglucose sensor unit 100. The continuous glucose sensor unit 100 sends areal-time data stream and a bulk data stream to each connected display,such as two displays, resulting in four streams. The services server(s)300, and other components in the cloud computing architecture 106 suchas back-end server(s) 306, can store an indication not only of thecontinuous glucose sensor unit 100 that sent the data, but also whichdisplay sent the data. In this manner, the components of the cloudcomputing architecture 106 can store separate data streams (e.g.,real-time and bulk) on a per-display basis. This helps withtroubleshooting technical support issues by back-end server(s) 306. Whena system component obtains backfilled data, the system component alsostores an indication that the data was backfilled rather than receivedupon at initial distribution. This also assists with diagnosingproblems, such as when an alarm is missed as previously described.

In addition, storing multiple data streams from multiple displaysassociated with a single continuous glucose sensor unit 100 allows thecloud computing architecture 106 to validate the data streams againsteach other. For example, the real-time data stream from a first displaycan be compared to the real-time data stream from a second display andany differences noted. Differences could indicate that the two displaysare not using the same calibration values or other system issues.Detecting any differences can result in a prompt to the user on eitherdisplay, such as a prompt to the user to update the calibration values.Comparing the two streams also allows confirmation that the data isbeing effectively captured by both displays.

FIG. 11 illustrates another exemplary method for backfilling misseddata. In some situations, the amount of data to backfill should belimited. For example, a user may turn their display 104 off (e.g., turnsmartphone off) for an extended period of time or even replace theirsmartphone. However, when a user has had their continuous glucosemonitor (e.g., continuous glucose sensor unit 100) for an extendedperiod of time, backfilling all prior data can cause system congestionand is unnecessary. As a result, the method of FIG. 11 searches for anymissing data within defined time intervals up to a maximum amount oftime such as, for example, one day, 12 hours, six hours, one hour, 30minutes, ten minutes, five minutes, one minute, etc.

At process 1100, a system component searches for missing data in a firsttime interval. As described above, any system component, such as display104, services server(s) 300, back-end server(s) 306, a remote monitordisplay such as 316, or other component can search for any missing data.The first time interval can vary based on the device searching formissing data. For example, a user's computing device such as display 104may have relatively limited amounts of memory compared to a server. Thedisplay 104 might search to backfill missing data in an interval of sixhours, up to a maximum of twenty-four hours, whereas a services server300 can search for missing data going back over the most recent thirtydays. In some implementations, display 104 may automatically sendbackfill data once it has received it; however, the display may need torequest data from the transmitter 102 of the continuous glucose sensorunit 100. This may be because the transmitter 102 may have a morelimited power source (e.g., a battery) than does the display 104. Atprocess 1102, the system component backfills any missing data discoveredduring the first time interval as described above.

Next, at process 1104, the system component searches for missing data inadditional time intervals. Continuing the example above, display 104 cansearch for missing data in the past six hours and backfill any missingdata by requesting it from the continuous glucose sensor unit 100. Next,the display searches for missing data in an additional timeinterval—such as another six hours. Of course, other time intervals canalso be used. The most recent time interval can be the first to backfilldata beginning most recently in time, or the search can begin at themaximum past duration and search towards newer data that might have beenmissed. At process 1106, the component backfills any missing data fromthe additional time interval.

At process 1108, the system component determines if the maximum intervalhas been reached. For example, if display 104 has already searched overthe most-recent twenty-four hours, it will stop searching at process1110. If, however, additional time intervals exist up to the maximuminterval for a particular component to search, process 1104 repeats tocontinue searching for data that should be backfilled.

In addition, the backfilling techniques disclosed herein are applicableto a variety of system components and applications. One challenge thatcan arise is providing and backfilling data to remote monitoringapplications or remote monitor devices. The real-time data can go toremote monitor devices, but a remote monitor device may be offline orout of wireless range. A remote monitor can set an alarm to be alertedif the patient's glucose levels are above a defined level, such as beingabove 200 mg/dL for a period of time such as an hour. If data points arenot coming in sequentially to the remote monitor device, it will not beable to track and issue an alarm. Moreover, if only thirty minutes ofdata are backfilled when the device comes back online, then it will notmeet the alarm criteria since the exemplary alarm depends on an hour ofdata. To address this problem, the remote monitor devices can bebackfilled in defined time ranges as described previously, such as sixhours. The data can be sent to the remote monitoring application fromoldest to newest in one embodiment. In some implementations, server(s)of the cloud computing architecture 106 such as real-time server 908 orservices server 300 initiates an alert to send to a remote monitordevice, such as remote monitor 316 b, that indicates backfilled data isbeing provided. The data that is provided as backfilled data to theremote monitor device may be displayed on the remote monitor device'sdisplay differently than data provided in its normal cycle. This willhelp the remote monitor device know whether or not an action should betaken based on the backfilled data. Similar to the above, remotemonitoring settings are configurable through the server (e.g., real-timesever 908 or services server 300). In an illustrative example, a remotemonitor may not want to know that an adult or responsible person “wentlow” six hours earlier as that person likely took action on their own toremedy the situation. Therefore, the remote monitor device can configurethe data sent in a backfill such that stale data is not displayed, thetime period of the backfill is defined, backfilling from newest tooldest or from oldest to newest is defined, certain data points are notbackfilled, and the like.

Generally, data is backfilled from oldest to the newest (most recent).This can cause some confusion for alarming as the oldest data begins tobackfill, alarm conditions may be present. For example, glucose levelscould drop to an alarm level or stay at a level that triggers an alarmafter a set amount of time. However, this condition may have occurred,for example, four hours previously, when the display now receiving thebackfill data was not receiving real-time data. Rather than trigger analarm on the display 104 or the remote monitor device 316 for a remotemonitor now, the server may be configured to continue to backfill datato determine if the alarm condition clears itself. Also, the server ofthe cloud computing architecture 106 (e.g., real-time sever 908 orservices server 300) may be set such that stale backfilled alarms arenot triggered unless there are rules on the server associated withparticular displays that instruct it to do so. For example, the personbeing monitored could be a child, in which case a remote monitor (e.g.,a parent) may want to know that the child experienced an alarmcondition, even if it was in the past and has now corrected itself.Therefore, the parent's monitoring device (e.g., display 316) could betriggered to alarm even though the condition occurred some hoursprevious. The remote monitor display 316 a can also be configured toindicate that the alarm is based on backfill data rather than currentdata.

FIG. 13 illustrates an exemplary computer. Continuous glucose sensorunits 100, the displays 104, computing devices of the cloud computingarchitecture 106 including associated servers, as well as other systemcomponents, can include all or some of the components shown in FIG. 13.

The computers may include one or more hardware components such as, forexample, a central processing unit (CPU) 1321, a random access memory(RAM) module 1322, a read-only memory (ROM) module 1323, a storage 1324,a database 1325, one or more input/output (I/O) devices 1326, and aninterface 1327. Alternatively or additionally, the computer may includeone or more software components such as, for example, acomputer-readable medium including computer executable instructions forperforming a method associated with the exemplary embodiments. It iscontemplated that one or more of the hardware components listed abovemay be implemented using software. For example, storage 1324 may includea software partition associated with one or more other hardwarecomponents. It is understood that the components listed above areexemplary only and not intended to be limiting.

CPU 1321 may include one or more processors, each configured to executeinstructions and process data to perform one or more functionsassociated with a computer for monitoring glucose levels. CPU 1321 maybe communicatively coupled to RAM 1322, ROM 1323, storage 1324, database1325, I/O devices 1326, and interface 1327. CPU 1321 may be configuredto execute sequences of computer program instructions to perform variousprocesses. The computer program instructions may be loaded into RAM 1322for execution by CPU 1321.

RAM 1322 and ROM 1323 may each include one or more devices for storinginformation associated with operation of CPU 1321. For example, ROM 1323may include a memory device configured to access and store informationassociated with a controller, including information for identifying,initializing, and monitoring the operation of one or more components andsubsystems. RAM 1322 may include a memory device for storing dataassociated with one or more operations of CPU 1321. For example, ROM1323 may load instructions into RAM 1322 for execution by CPU 1321.

Storage 1324 may include any type of mass storage device configured tostore information that CPU 1321 may need to perform processes consistentwith the disclosed embodiments. For example, storage 1324 may includeone or more magnetic and/or optical disk devices, such as hard drives,CD-ROMs, DVD-ROMs, or any other type of mass media device.

Database 1325 may include one or more software and/or hardwarecomponents that cooperate to store, organize, sort, filter, and/orarrange data used by CPU 1321. For example, database 1325 may datarelating to monitoring glucose levels, associated metadata, and healthinformation. It is contemplated that database 1325 may store additionaland/or different information than that listed above.

I/O devices 1326 may include one or more components configured tocommunicate information with a user associated with a controller. Forexample, I/O devices may include a console with an integrated keyboardand mouse to allow a user to maintain a database of images, updateassociations, and access digital content. I/O devices 1326 may alsoinclude a display including a graphical user interface (GUI) foroutputting information on a monitor. I/O devices 1326 may also includeperipheral devices such as, for example, a printer for printinginformation associated with a controller, a user-accessible disk drive(e.g., a USB port, a floppy, CD-ROM, or DVD-ROM drive, etc.) to allow auser to input data stored on a portable media device, a microphone, aspeaker system, or any other suitable type of interface device.

Interface 1327 may include one or more components configured to transmitand receive data via a communication network, such as the Internet, alocal area network, a workstation peer-to-peer network, a direct linknetwork, a wireless network, or any other suitable communicationplatform. For example, interface 1327 may include one or moremodulators, demodulators, multiplexers, demultiplexers, networkcommunication devices, wireless devices, antennas, modems, and any othertype of device configured to enable data communication via acommunication network.

EXAMPLES

The following examples are illustrative of several embodiments of thepresent technology. Other exemplary embodiments of the presenttechnology may be presented prior to the following fisted examples, orafter the following listed examples.

In some embodiments in accordance with the present technology, a methodfor securely transmitting data relating to glucose levels includes thefollowing features. A continuous glucose monitor separates data intomultiple categories prior to transmission. The categories can be basedon whether the data identifies a patient, contains proprietaryinformation relating to system operation (e.g., error codes, calibrationformulas, raw data, calibrated data, and the like), or containsinformation that third-parties and other system components can access.The categories will be referred to herein as public and private data. Insome embodiments, a display or a cloud computing architecture canseparate data into multiple categories. The cloud computing architecturecan separately store the data and restrict access to only one or more ofthe multiple categories of data based on the entity requesting access.Different systems can perform data synchronization at different times.

In some examples, different data streams containing different types ofdata can be sent separately to a server and stored separately. The datastreams may be duplicative, such as where a continuous glucose monitortransmits a data stream to two connected displays, each of which forwardtheir data (along with any other data generated by the display) to aserver. This results in two separate data streams from two displays,which should be duplicative data. The cloud computing architecturestores the data streams separately, allowing it to easily grant orrestrict access to the data, and also allowing the data streams to becompared to ensure correct system operation. In addition, each displaycan actually transmit multiple data streams where the data has beenseparated into one or more of the multiple categories as appropriate toallow for easy classification and permission-based access. For example,each display can send two data streams, resulting in the cloud computingarchitecture receiving four data streams associated with a singlecontinuous glucose monitor. The server can then resume transmission witheach particular display based on the most recently receivedtransmissions from that display.

The continuous glucose monitor transmits the categories of data at thesame or different times. For example, the continuous glucose monitortransmits some data in real-time, such as every five minutes, and otherdata as part of a periodic bulk transfer, such as hourly. The cloudcomputing architecture separately stores the real-time and bulk data. Inaddition, different components within the cloud computing architecturestore real-time and bulk data for differing durations. This allows quickaccess to more recent data, such as data generated in the last thirtydays, without requiring that a single server store extremely largevolumes of data. Instead, the cloud computing architecture storeslong-term data in separate storage.

In some exemplary embodiments, the continuous glucose monitor canencrypt at least some data prior to transmission. Encryption preventsunauthorized third-parties from accessing the data. The continuousglucose monitor encrypts some or all of the data, and only devicesauthorized to access a particular type of data obtain the decryptionkey. For example, the continuous glucose monitor transmits multiplepieces of data to a display, which only has a key to decrypt some of thedata. The display forwards the data to a server that has a key used todecrypt some or all of the data. In this manner, the continuous glucosemonitor encrypts private data that remains encrypted during distributionthrough the system until receipt by a server.

Some exemplary embodiments address a common interface for accessing thedescribed distributed system architecture. The system or systemcomponents can be an approved medical device that may require a newapproval for certain changes to system design or operation. Yet, thirdparties will request access to the medical data and the third-partieswill use a variety of different types of requests. As third-partiescreate new software applications and servers, changes would need to bemade to the system to grant the requested access. For example, athird-party application requests access to glucose levels in the lastweek to integrate the glucose levels with information regarding foodconsumption. Another application requests access to glucose levels toprovide recommendations on insulin injections. These applications couldhave different interfaces and request access to different types of data(e.g., real-time v. bulk, glucose levels with or without patientidentifying information, etc.). To address these issues, the cloudcomputing architecture implements a hub and spoke topology that providesa set of common application program interfaces. The third parties caninterface with the common application program interfaces that have beengranted regulatory approval. In addition, the system provides a userwith a single sign-on so the user does not need to log into separatesystems as a user access various system modules.

In addition, exemplary embodiments control access to a patient's medicalinformation by remote monitors of a specific patient. A remote monitoris a person other than the patient using a continuous glucose monitorwho accesses glucose levels for the patient. For example, a parent orguardian can follow their child's glucose levels and be considered aremote monitor. Maintaining confidential person-identifying informationby system components can be problematic because the information may fallunder HIPPA and other regulations. This could include informationidentifying the remote monitors themselves and location or otherinformation identifying the remote monitors. To avoid storingidentifying information about a remote monitor, the remote monitor canregister with the system through an anonymous identifier generator andthe system can store, for example, a unique number that associates ananonymous identification of the remote monitor with a display. The cloudcomputing architecture therefore does not need to receive or store anyspecifically identifying information for a remote monitor.

Some embodiments address challenges associated with missed transmissionsof data from the continuous glucose monitor. For example, a smartphonecould be turned off or out of wireless range and therefore will missdata transmissions. The display will therefore show that some data wasmissing, and a user may even not receive an alarm when their glucoselevels dropped below or rose above a defined level due to the displaybeing out of communication with the continuous glucose monitor. Thissame issue of missing data applies equally to other componentsthroughout the system, including additional displays, third-partyapplications, and components in the cloud computing architecture. Toaddress this challenge, embodiments identify when a particular device ismissing data. Then, the missing data can be selectively provided to thedevice as part of a process referred to as backfilling. For example, adisplay searches for missing data within the last six hours. Uponidentifying missing data, the display requests and receives the missingdata from the continuous glucose monitor, another display, or anothersystem component (i.e., “backfills” the missing data). The display orother system component searches additional time intervals also, up to adefined maximum such as one day or thirty days, depending on thecomponent, and backfills the other missing data. Then, the displayillustrates to a user which data was received as scheduled or as it wastransmitted (i.e., “in time”) versus data received after a delay andthrough the backfill process. This allows a user to readily identifyingwhy the display did not generate an alarm at a given time, such as whenthe device was out of range so it did not receive any glucose levels toevaluate against the alarm limits.

Another challenge arises with distinguishing between data that wasreceived as scheduled upon transmission or through a backfill process.When a user misses an alarm because a device was out of range, but looksat their smartphone and sees that glucose data is available in the timerange of when an alarm should have issued, the user can become confusedor assume there was an error with the alarm. However, the smartphone didnot have the data at the time of the alarm but instead backfilled thedata subsequently. To address this issue, in some embodiments, thedisplays and cloud computing architecture store an indication as towhether data was received as scheduled upon transmission or later aspart of a backfill process. The cloud computing architecture stores thedata separately along with the indication to distinguish the data forsubsequent technical support and other issues. In addition, multipledisplays send separate data streams to the cloud computing architecture,which the cloud computing architecture stores separately along with anindication of which display sent the data. This allows the cloudcomputing architecture to identify which display forwarded the data andhelps identify the source of any problems.

In some aspects, a method for securely transmitting data relating toglucose levels is described. The method can comprise preparing dataincluding glucose levels using a continuous glucose monitor; wirelesslytransmitting the data relating to glucose levels to at least one displaydevice from a transmitter associated with the continuous glucosemonitor; automatically forwarding the data relating to glucose levelsfrom the display device to a cloud computing architecture; and storingthe data relating to glucose levels in separate groups at the cloudinfrastructure. The data relating to glucose levels can comprisemeasured glucose values and diagnostic data.

Optionally or alternatively, the above-described method can furthercomprise including, by the display device, additional data with the datarelating to glucose levels, wherein automatically forwarding the datacomprises automatically forwarding the additional data and the datarelating to glucose levels.

Optionally or alternatively, the data relating to glucose levels cancomprise a first set of data and a second set of data, and storing thedata relating to glucose levels in separate groups can comprise storingthe first set of data on a first server and the second set of data on asecond server. Optionally or alternatively, the first set of data cancomprise real-time data, the real-time data comprising one or more ofglucose values, a current status of a continuous glucose sensor, andtimestamps associated with measurements used to obtain the glucosevalues; and the second set of data comprises at least one of informationfor calibrating the continuous glucose monitor and information used fortechnical support of the continuous glucose monitor.

Optionally or alternatively, the above-described method can furthercomprise encrypting the first set of data by the transmitter; encryptingthe second set of data by the transmitter; decrypting and displaying thefirst set of data by the at least one display device; preventing the atleast one display device from decrypting the second set of data; anddecrypting the second set of data by the cloud infrastructure.

Optionally or alternatively, the above-described method can furthercomprise storing a first key to decrypt the first set of data by the atleast one display device; storing a second key to decrypt the second setof data by the cloud infrastructure; and preventing access to the secondkey by the at least one display device.

Optionally or alternatively, the above-described method can furthercomprise forwarding a subset of the data relating to glucose levels fromthe cloud infrastructure to a second display device, the subset of datacomprising at least one of current and past glucose levels.

Optionally or alternatively, the above-described method can furthercomprise selectively determining, by the cloud infrastructure, whetherto grant access to the first set of data and the second set of data byone or more requesting systems. The requesting systems can comprise atechnical support system, at least one third-party application, and adata warehouse, wherein the cloud infrastructure: grants the technicalsupport system access to the first set of data and the second set ofdata; grants the at least one third-party application access to thefirst set of data; and grants the data warehouse access to the first setof data and the second set of data.

Optionally or alternatively, the display device can comprise at leastone of a smartphone or a display.

In some aspects, a system for monitoring data relating to glucose levelsis disclosed. The system can comprise a continuous glucose sensorconfigured to prepare data relating to glucose levels; a wirelesstransmitter configured to transmit the data relating to glucose levels;a display device configured to receive the transmitted data relating toglucose levels and automatically forward the data; and a cloud computingarchitecture configured to receive the automatically forwarded data andstore the data relating to glucose levels in separate groups. The datarelating to glucose levels comprises measured glucose values anddiagnostic data.

Optionally or alternatively, the above-described system can be furtherconfigured to include additional data with the data relating to glucoselevels; and automatically forward the additional data and the datarelating to glucose levels.

Optionally or alternatively, in the above-described system the datarelating to glucose levels can comprise a first set of data and a secondset of data, and storing the data relating to glucose levels in separategroups can comprise separately storing the first set of data on a firstserver and storing the second set of data on a second server.

Optionally or alternatively, in the above-described system the first setof data can comprise real-time data, the real-time data comprising oneor more of glucose values, a current status of a continuous glucosesensor, and timestamps associated with measurements used to obtain theglucose values; and the second set of data can comprise at least one ofinformation for calibrating the continuous glucose monitor andinformation used for technical support of the continuous glucosemonitor.

Optionally or alternatively, in the above-described system thetransmitter can be further configured to encrypt the first set of dataand the second set of data; the at least one display device can befurther configured to decrypt and display the first set of data; the atleast one display device cannot decrypt the second set of data; and thecloud infrastructure can be further configured to decrypt the second setof data.

Optionally or alternatively, in the above-described system the at leastone display device can be further configured to store a first key todecrypt the first set of data; the cloud infrastructure can be furtherconfigured to store a second key to decrypt the second set of data; andthe at least one display device cannot access the second key.

Optionally or alternatively, in the above-described system the cloudinfrastructure can be further configured to forward a subset of the datarelating to glucose levels to a second display device, the subset ofdata comprising at least one of current and past glucose levels.

Optionally or alternatively, in the above-described system the cloudinfrastructure can be further configured to selectively determinewhether to grant access to the first set of data and the second set ofdata by one or more requesting systems. The requesting systems cancomprise a technical support system, at least one third-partyapplication, and a data warehouse, wherein the cloud infrastructure canbe further configured to: grant the technical support system access tothe first set of data and the second set of data; grant the at least onethird-party application access to the first set of data; and grant thedata warehouse access to the first set of data and the second set ofdata.

Optionally or alternatively, in the above-described system the displaydevice can comprise at least one of a smartphone or a display.

In some aspects, a computer-readable media comprising instructionswhich, when executed by one or more processors, perform a method forsecurely transmitting data relating to glucose levels is described. Theinstructions can comprise preparing data relating to glucose levelsusing a continuous glucose monitor; wirelessly transmitting the datarelating to glucose levels to at least one display device from atransmitter associated with the continuous glucose monitor;automatically forwarding the data relating to glucose levels from thedisplay device to a cloud computing architecture; and storing the datarelating to glucose levels in separate groups at the cloudinfrastructure. The data relating to glucose levels can comprisemeasured glucose values and diagnostic data.

Optionally or alternatively, the instructions may comprise including, bythe display device, additional data with the data relating to glucoselevels, wherein automatically forwarding the data comprisesautomatically forwarding the additional data and the data relating toglucose levels.

Optionally or alternatively, the instructions may comprise the datarelating to glucose levels comprises a first set of data and a secondset of data, and storing the data relating to glucose levels in separategroups comprises separately storing the first set of data and the secondset of data by the cloud infrastructure.

Optionally or alternatively, the instructions may comprise the first setof data comprises real-time data, the real-time data can comprise one ormore of glucose values, a current status of a continuous glucose sensor,and timestamps associated with measurements used to obtain the glucosevalues; and the second set of data can comprise at least one ofinformation for calibrating the continuous glucose monitor andinformation used for technical support of the continuous glucosemonitor.

Optionally or alternatively, the instructions may comprise encryptingthe first set of data by the transmitter; encrypting the second set ofdata by the transmitter; decrypting and displaying the first set of databy the at least one display device; preventing the at least one displaydevice from decrypting the second set of data; and decrypting the secondset of data by the cloud infrastructure.

Optionally or alternatively, the instructions may comprise storing afirst key to decrypt the first set of data by the at least one displaydevice; storing a second key to decrypt the second set of data by thecloud infrastructure; and preventing access to the second key by the atleast one display device.

Optionally or alternatively, the instructions may comprise forwarding asubset of the data relating to glucose levels from the cloudinfrastructure to a second display device, the subset of data comprisingat least one of current and past glucose levels.

Optionally or alternatively, the instructions may comprise selectivelydetermining, by the cloud infrastructure, whether to grant access to thefirst set of data and the second set of data by one or more requestingsystems.

Optionally or alternatively, the instructions may comprise therequesting systems comprising a technical support system, at least onethird-party application, and a data warehouse, wherein the cloudinfrastructure: grants the technical support system access to the firstset of data and the second set of data; grants the at least onethird-party application access to the first set of data; and grants thedata warehouse access to the first set of data and the second set ofdata.

Also disclosed herein in are various embodiments of systems, methods andcomputer-readable media associated with securely transmitting datarelating to glucose levels including, for example, a method forencrypting and transmitting data relating to glucose levels from acontinuous glucose monitor, a system for encrypting and transmittingdata relating to glucose levels from a continuous glucose monitor, oneor more computer-readable media comprising instructions which, whenexecuted by one or more processors, perform a method for encrypting andtransmitting data relating to glucose levels from a continuous glucosemonitor, a method for controlling access to data relating to glucoselevels, a system for controlling access to data relating to glucoselevels, one or more computer-readable media comprising instructionswhich, when executed by one or more processors, perform a method forcontrolling access to data relating to glucose levels, a method ofupdating data relating to glucose levels in a distributed architecture,a system for updating data relating to glucose levels in a distributedarchitecture, one or more computer-readable media comprisinginstructions which, when executed by one or more processors, perform amethod of updating data relating to glucose levels in a distributedarchitecture, a method for synchronizing data relating to glucose levelsin a distributed architecture system, a system for synchronizing datarelating to glucose levels in a distributed architecture system, one ormore computer-readable media comprising instructions which, whenexecuted by one or more processors, performs a method for synchronizingdata relating to glucose levels in a distributed architecture system,and the like.

Further disclosed herein is a system for securely collecting, analyzingand reporting data related to glucose monitoring levels by a pluralityof continuous glucose monitors. In some aspects, the system comprises aplurality of continuous glucose monitors (CGMs); a plurality of displaydevices that receive data from the plurality of CGMs, wherein the datais classified into a plurality of classifications based on data type; acloud server architecture comprising a plurality of servers thatreceives the data from the plurality of display devices on anintermittent basis, wherein the data routed to a particular server ofthe plurality of servers is determined by the data type and wherein theintermittent basis varies depending upon data type; a plurality ofremote monitor display devices that receive data from one of theplurality of servers, wherein the data sent to each of the plurality ofremote monitor display devices depends upon the data type and upon thedisplay device that transmitted the data to the one of the plurality ofservers and said data is sent to the plurality of remote monitor displaydevices immediately upon receipt by the one of the plurality of servers;and an analysis and report engine, wherein at least a portion of thedata received by the plurality of servers is transmitted to the analysisand report engine, said transmitted data analyzed and reports generatedby the analysis and report engine.

In some aspects, the plurality of servers that comprise the cloud serverarchitecture comprise at least a real-time server and a bulk datacollector.

In some aspects, the data types comprise real-time data and bulk data.

In some aspects, the real-time data is routed to the real-time serverfrom the plurality of display devices and the bulk data is routed to thebulk data collector from the plurality of display devices. In someaspects, the real-time data is routed to the real-time server from theplurality of display devices at an intermittent basis that is morefrequent that the intermittent basis that the bulk data is routed to thebulk data collector from the plurality of display devices. In someaspects, the real-time data is routed to the real-time server from theplurality of display devices once every five minutes and the bulk datais routed to the bulk data collector from the plurality of displaydevices once every hour.

In some aspects, the system further comprises a locator service, whereinthe plurality of display devices connect to the cloud serverarchitecture through the locator service.

In some aspects, at least one of the plurality of display devicescomprises a smartphone.

In some aspects, at least one of the plurality of remote monitor displaydevices comprises a smartphone.

In some aspects, the plurality of display devices comprises at least150,000 devices.

In some aspects, at least one of the plurality of remote monitor displaydevices further comprises an application that can be executed by the atleast one of the plurality of remote display devices. In some aspects,the application on the at least one of the plurality of remote monitordisplay devices must be open and running in order to receive the datathat is ready to be sent to the at least one of the plurality of remotemonitor display devices, else the data that is ready to be sent to theat least one of the plurality of remote monitor display devices is heldby one of the plurality of servers.

In some aspects, at least one of the plurality of remote monitor displaydevices that receive data from one of the plurality of servers receivesa notification that data is ready to be sent to the at least one of theplurality of remote monitor display devices. The notification maycomprise a text message.

In some aspects, the application that can be executed by the at leastone of the plurality of remote display devices wakes when the one of theplurality of servers attempts to send the data to the at least one ofthe plurality of remote display devices. In some aspects, theapplication requests the data to be sent from the one of the pluralityof servers after the application wakes.

Also disclosed is a method for securely collecting, analyzing andreporting data related to glucose monitoring levels by a plurality ofcontinuous glucose monitors. In some aspects, the method comprisesreceiving, by a plurality of display devices, data from a plurality ofcontinuous glucose monitors (CGMs); classifying the data into aplurality of classifications based on data type; transmitting the datafrom the plurality of display devices to a cloud server architecturecomprising a plurality of servers that receives the data from theplurality of display devices on an intermittent basis, wherein the datarouted to a particular server of the plurality of servers is determinedby the data type and wherein the intermittent basis varies dependingupon data type; receiving, by a plurality of remote monitor displaydevices, data from one of the plurality of servers, wherein the datasent to each of the plurality of remote monitor display devices dependsupon the data type and upon the display device that transmitted the datato the one of the plurality of servers and said data is sent to theplurality of remote monitor display devices immediately upon receipt bythe one of the plurality of servers; and receiving, by an analysis andreport engine, at least a portion of the data received by the pluralityof servers, said received data analyzed and reports generated by theanalysis and report engine. In some aspects, the plurality of serversthat comprise the cloud server architecture comprise at least areal-time server and a bulk data collector.

In some aspects, classifying the data into a plurality ofclassifications based on data type may comprise classifying the data asreal-time data and bulk data. The real-time data may be routed to thereal-time server from the plurality of display devices and the bulk datamay be routed to the bulk data collector from the plurality of displaydevices.

In some aspects, the real-time data is routed to the real-time serverfrom the plurality of display devices at an intermittent basis that ismore frequent that the intermittent basis that the bulk data is routedto the bulk data collector from the plurality of display devices. Forexample, the real-time data may be routed to the real-time server fromthe plurality of display devices once every five minutes and the bulkdata may be routed to the bulk data collector from the plurality ofdisplay devices once every hour.

In some aspects, the method may further utilize a locator service,wherein the plurality of display devices connect to the cloud serverarchitecture through the locator service.

In some aspects, at least one of the plurality of display devicescomprises a smartphone.

In some aspects, at least one of the plurality of remote monitor displaydevices comprises a smartphone.

In some aspects, the plurality of display devices comprises at least150,000 devices.

In some aspects, at least one of the plurality of remote monitor displaydevices further comprises an application that can be executed by the atleast one of the plurality of remote display devices. In some aspects,the application on the at least one of the plurality of remote monitordisplay devices must be open and running in order to receive the datathat is ready to be sent to the at least one of the plurality of remotemonitor display devices, else the data that is ready to be sent to theat least one of the plurality of remote monitor display devices is heldby one of the plurality of servers.

In some aspects, at least one of the plurality of remote monitor displaydevices that receive data from one of the plurality of servers receivesa notification that data is ready to be sent to the at least one of theplurality of remote monitor display devices. For example, thenotification may comprise a text message.

In some aspects, the application that can be executed by the at leastone of the plurality of remote display devices wakes when the one of theplurality of servers attempts to send the data to the at least one ofthe plurality of remote display devices. In some aspects, theapplication requests the data to be sent from the one of the pluralityof servers after the application wakes.

Any combination of one or more computer readable medium(s) may beutilized. The computer readable medium may be a computer readable signalmedium or a computer readable storage medium. A computer readablestorage medium may be, for example, an electronic, magnetic, optical,electromagnetic, infrared, or semiconductor system, apparatus, ordevice, or any suitable combination of the foregoing. More specificexamples (a non-exhaustive list) of the computer readable storage mediumwould include the following: an electrical connection having one or morewires, a portable computer diskette, a hard disk, a random access memory(RAM), a read-only memory (ROM), an erasable programmable read-onlymemory (EPROM or Flash memory), an optical fiber, a portable compactdisc read-only memory (CD-ROM), an optical storage device, a magneticstorage device, or any suitable combination of the foregoing. Programcode embodied on a computer readable medium may be transmitted using anyappropriate medium, including but not limited to wireless, wireline,optical fiber cable, RF, etc., or any suitable combination of theforegoing.

Computer program code for may be written in any combination of one ormore programming languages, including an object oriented programminglanguage such as Java, Smalltalk, C++, or the like, and conventionalprocedural programming languages, such as the “C” programming languageor similar programming languages. The program code may execute entirelyon the computing unit.

It will be understood that each block of the flowchart illustrationsand/or block diagrams, and combinations of blocks in the flowchartillustrations and/or block diagrams, can be implemented by computerprogram instructions. These computer program instructions may beprovided to a processor of a general purpose computer, special purposecomputer, or other programmable data processing apparatus to produce amachine, such that the instructions, which execute via the processor ofthe computer or other programmable data processing apparatus, createmeans for implementing the functions/acts specified in the flowchartand/or block diagram block or blocks.

It should be understood that the various techniques described herein maybe implemented in connection with hardware or software or, whereappropriate, with a combination thereof. Thus, the methods andapparatuses of the presently disclosed subject matter, or certainaspects or portions thereof, may take the form of program code (i.e.,instructions) embodied in tangible media, such as floppy diskettes,CD-ROMs, hard drives, or any other machine-readable storage mediumwherein, when the program code is loaded into and executed by a machine,such as a computing device, the machine becomes an apparatus forpracticing the presently disclosed subject matter. In the case ofprogram code execution on programmable computers, the computing devicegenerally includes a processor, a storage medium readable by theprocessor (including volatile and non-volatile memory and/or storageelements), at least one input device, and at least one output device.One or more programs may implement or utilize the processes described inconnection with the presently disclosed subject matter, e.g., throughthe use of an application programming interface (API), reusablecontrols, or the like. Such programs may be implemented in a high levelprocedural or object-oriented programming language to communicate with acomputer system. However, the program(s) can be implemented in assemblyor machine language, if desired. In any case, the language may be acompiled or interpreted language and it may be combined with hardwareimplementations.

While this specification contains many specific implementation details,these should not be construed as limitations on the claims. Certainfeatures that are described in this specification in the context ofseparate implementations may also be implemented in combination in asingle implementation. Conversely, various features that are describedin the context of a single implementation may also be implemented inmultiple implementations separately or in any suitable subcombination.Moreover, although features may be described above as acting in certaincombinations and even initially claimed as such, one or more featuresfrom a claimed combination may in some cases be excised from thecombination, and the claimed combination may be directed to asubcombination or variation of a subcombination.

Similarly, while operations are depicted in the drawings in a particularorder, this should not be understood as requiring that such operationsbe performed in the particular order shown or in sequential order, orthat all illustrated operations be performed, to achieve desirableresults. In certain circumstances, multitasking and parallel processingmay be advantageous. Moreover, the separation of various systemcomponents in the implementations described above should not beunderstood as requiring such separation in all implementations, and itshould be understood that the described program components and systemsmay generally be integrated together in a single software product orpackaged into multiple software products.

It should be appreciated that the logical operations described hereinwith respect to the various figures may be implemented (1) as a sequenceof computer implemented acts or program modules (i.e., software) runningon a computing device, (2) as interconnected machine logic circuits orcircuit modules (i.e., hardware) within the computing device and/or (3)a combination of software and hardware of the computing device. Thus,the logical operations discussed herein are not limited to any specificcombination of hardware and software. The implementation is a matter ofchoice dependent on the performance and other requirements of thecomputing device. Accordingly, the logical operations described hereinare referred to variously as operations, structural devices, acts, ormodules. These operations, structural devices, acts and modules may beimplemented in software, in firmware, in special purpose digital logic,and any combination thereof. It should also be appreciated that more orfewer operations may be performed than shown in the figures anddescribed herein. These operations may also be performed in a differentorder than those described herein. It will be apparent to those skilledin the art that various modifications and variations can be made withoutdeparting from the scope or spirit. Other embodiments will be apparentto those skilled in the art from consideration of the specification andpractice disclosed herein. It is intended that the specification andexamples be considered as exemplary only, with a true scope and spiritbeing indicated by the following claims.

What is claimed is:
 1. A method of updating data in a distributed architecture, comprising: obtaining one or more data points relating to glucose levels from a transmitter associated with a continuous glucose monitor device; distributing the one or more data points among one or more display devices and one or more servers; identifying that a data point is missing from among a display device of the one or more display devices or a server of the one or more servers, the data point that is missing corresponding to one of the one or more data points, the identifying including examining timestamps associated with the one or more data points relating to glucose levels; and when the display device of the one or more display devices is within wireless range of the transmitter, providing real time data and further providing a data point corresponding to the data point that is missing to the display device or the server when the data point that is missing falls within a defined time period, wherein the provided data point comprises backfilled data sent to the display device or the server after the distributing, and wherein the display device or the server that receives the missing data point was turned off, offline, out of wireless range, or disconnected when the missing data point was initially available, and wherein the defined time period extends from a present time back to an extended period of time, and thus decreasing computational and storage needs by only selectively backfilling data from the defined time period, the selectively backfilled data comprising a subset of the data for the defined time period, wherein the subset constitutes less than all of the data that is missing, wherein the one or more servers comprise a distributed cloud system configured to receive data relating to glucose levels from the one or more display devices on an intermittent basis that varies depending upon a data type, wherein a real-time server of the plurality of servers is configured to receive real-time data, and a bulk data collector is configured to receive bulk data.
 2. The method of claim 1, comprising: identifying the missing data point from among a display device of the one or more display devices or a server of the one or more servers; and providing the missing data point to the display device or the server.
 3. The method of claim 2, further comprising: displaying the one or more data points and the missing data point; and displaying an indication that the missing data point includes backfilled data.
 4. The method of claim 1, comprising: identifying the missing data point from among a display device of the one or more display devices or a server of the one or more servers; determining if the missing data point was created within a subset of the defined time interval; and providing the missing data point that was created within the subset of the defined time interval.
 5. The method of claim 4, further comprising: displaying the one or more data points and the missing data point; and displaying an indication that the missing data point includes backfilled data.
 6. The method of claim 1, comprising: identifying the missing data point from among a display device of the one or more display devices or a server of the one or more servers; determining a number of the missing data points to backfill based on the device that missed the data; and providing the determined number of missing data points to the display device or the server.
 7. The method of claim 1, further comprising: storing, by the one or more display devices or the one or more servers that was provided the missing data point, an indication that the missing data point comprises backfilled data.
 8. The method of claim 1, further comprising: storing, by the one or more display devices and the one or more servers, an indication that the one or more data points were received in real-time.
 9. The method of claim 1, further comprising: connecting a plurality of display devices to the transmitter; distributing the one or more data points to the plurality of display devices; and forwarding the one or more data points from the plurality of display devices to the one or more servers along with an indication of which display device forwarded the data.
 10. The method of claim 9, further comprising: receiving the one or more data points during the distributing of the plurality of sets of data; and displaying the one or more data points received during the distributing differently from the missing data point.
 11. The method of claim 1, wherein the defined time period comprises the past six hours.
 12. A system for updating data in a distributed architecture, comprising: a continuous glucose monitor device including a memory configured to store a plurality of sets of data relating to glucose levels, a transmitter configured to obtain the plurality of sets of data relating to glucose levels and distribute the plurality of sets of data among one or more display devices and one or more servers; and one or both of (i) the one or more display devices and (ii) the one or more servers, wherein the one or more display devices and/or the one or more servers including one or more processors are configured to: identify a missing set of data from among the plurality of sets of data, the identifying including examining timestamps associated with the plurality of sets of data relating to glucose levels, request the missing set of data, and when the display device of the one or more display devices is within wireless range of the transmitter, receive real time data and the missing set of data when the missing set of data falls within a defined time period, wherein the received missing set of data comprises backfilled data sent to the display device or the server after the distributing, and wherein the display device or the server that receives the missing set of data was turned off, offline, out of wireless range, or disconnected when the missing set of data was initially available, and wherein the defined time period extends from a present time back to an extended period of time, and thus decreasing computational and storage needs by only selectively backfilling data from the defined time period, the selectively backfilled data comprising a subset of the data for the defined time period, wherein the subset constitutes less than all of the data that is missing, wherein the one or more servers comprise a distributed cloud system configured to receive data relating to glucose levels from the one or more display devices on an intermittent basis that varies depending upon a data type, wherein a real-time server of the plurality of servers is configured to receive real-time data, and a bulk data collector is configured to receive bulk data.
 13. The system of claim 12, wherein the one or more display devices and/or the one or more servers are configured to: identify a plurality of missing sets of data from among a display device or a server, request the plurality of missing sets of data, and receive the plurality of missing sets of data.
 14. The system of claim 12, wherein the one or more display devices and/or the one or more servers are configured to: identify a plurality of missing sets of data, determine which of the plurality of missing sets of data were created within a subset of the defined time interval, and request those missing sets of data that were created within the subset of the defined time interval.
 15. The system of claim 14, wherein the one or more display devices are configured to: display the plurality of sets of data and the missing set of data, and display an indication that the missing set of data includes backfilled data.
 16. The system of claim 12, wherein: a plurality of missing sets of data from among a display device of the one or more display devices and/or a server of the one or more servers are identified; a number of the missing sets of data to backfill based on the device that missed the data are determined; and the determined number of missing sets of data are provided to the display device or the server.
 17. The system of claim 12, wherein the one or more display device and/or the one or more servers that was provided the missing set of data are configured to store an indication that the missing set of data comprises backfilled data.
 18. The system of claim 17, wherein the one or more display devices and/or the one or more servers store an indication that the plurality of sets of data were received in real-time.
 19. The system of claim 12, further comprising a plurality of display devices in communication with the transmitter, wherein: the plurality of sets of data are distributed to the plurality of display devices; and the plurality of sets of data are forwarded from the plurality of display devices to the one or more servers along with an indication of which display device forwarded the sets data.
 20. The system of claim 12, wherein: the plurality of sets of data are received during the distributing of the plurality of sets of data; and the plurality of sets of data received during the distributing are displayed differently from the missing set of data.
 21. The system of claim 12, wherein the defined time period comprises the past six hours.
 22. The system of claim 12, wherein the one or more display devices include a first display device and a second display device, and wherein the one or more servers are configured to receive the plurality of sets of data from the one or more display devices and separately store the plurality of sets of data based on whether the plurality of sets of data were received from the first display device or the second display device.
 23. The system of claim 22, wherein: the first display device is configured to tag the plurality of sets of data as having been received by the first display device; and the second display device is configured to tag the plurality of sets of data as having been received by the second display device.
 24. The system of claim 22, wherein: the first display device is configured to provide a first alert for when glucose levels reach a first defined level or experience a first rate of change; and the second display device is configured to provide a second alert for when glucose levels reach a second defined level or experience a second rate of change.
 25. The system of claim 22, wherein: the first display device is configured to provide the plurality of sets of data to the one or more servers at a first defined time; and the second display device is configured to provide the plurality of sets of data to the one or more servers at a second defined time.
 26. The system of claim 22, wherein the distributed cloud computing system including a plurality of connected computing devices. 